          """ Return a list of frames that do not contain the original frame
              height and width attributes """
          keys = list()
          for key, val in self.data.items():
              for alignment in val:
                  if "frame_dims" not in alignment.keys():
                      keys.append(key)
                      break
 
</s> remove             print("Legacy rotated frames found. Converting...")
 </s> add             logger.info("Legacy rotated frames found. Converting...") </s> remove     exclude_names = [os.path.basename(Path(x).stem[:Path(x).stem.rfind('_')] +
                                      Path(x).suffix) for x in exclude]
 </s> add  </s> remove         print("Loading file list from {}".format(self.folder))
 </s> add         logger.info("Loading file list from %s", self.folder)
        logger.debug("Getting alignments without frame_dims")
          """ Return a list of frames that do not contain the original frame
              height and width attributes """
        logger.debug("Getting alignments without frame_dims")
          keys = list()
          for key, val in self.data.items():
              for alignment in val:
                  if "frame_dims" not in alignment.keys():
                      keys.append(key)
                      break
keep add keep keep keep keep keep keep
 Logging (#541)

* Convert prints to logger. Further logging improvements. Tidy  up

* Fix system verbosity. Allow SystemExit

* Fix reload extract bug

* Child Traceback handling

* Safer shutdown procedure

* Add shutdown event to queue manager

* landmarks_as_xy > property. GUI notes + linting. Aligner bugfix

* fix FaceFilter. Enable nFilter when no Filter is supplied

* Fix blurry face filter

* Continue on IO error. Better error handling

* Explicitly print stack trace tocrash log

* Windows Multiprocessing bugfix

* Add git info and conda version to crash log

* Windows/Anaconda mp bugfix

* Logging fixes for training 
lib/alignments.py