                  self.finalize(item)
                  break
              image = item["image"][:, :, ::-1].copy()
              item["landmarks"] = self.process_landmarks(image, item["detected_faces"])
              logger.trace("Algned faces: %s", item["landmarks"])
  
              self.finalize(item)
          logger.debug("Completed Align")
 
</s> remove             self.finalize("EOF")
        except:
            item["exception"] = True
            self.queues["out"].put(item)
            raise
 </s> add                 break
            image = item["image"][:, :, ::-1].copy()

            logger.trace("Algning faces")
            item["landmarks"] = self.process_landmarks(image, item["detected_faces"])
            logger.trace("Algned faces: %s", item["landmarks"])

            self.finalize(item)
        logger.debug("Completed Align") </s> remove         self.finalize("EOF")
 </s> add         logger.debug("Completed Align") </s> remove                 break
            if item.get("exception", False):
                self.queues["out"].put(item)
 </s> add                 self.finalize(item) </s> remove         try:
            while True:
                # NB: There appears to be a bug somewhere that re-inserts the first item (after
                # detecting landmarks) back into the in queue. This happens consistently when -mp
                # is not set, only appears to happen for the first item and always places it in
                # the same place. It doesn't effect output, but should be squashed.
                item = self.queues["in"].get()
                if item == "EOF":
                    break
                if item.get("exception", False):
                    self.queues["out"].put(item)
                    break
                image = item["image"][:, :, ::-1].copy()
                item["landmarks"] = self.process_landmarks(image, item["detected_faces"])
 </s> add         for item in self.get_item():
            if item == "EOF":
            logger.trace("Algning faces")
                  self.finalize(item)
                  break
              image = item["image"][:, :, ::-1].copy()
            logger.trace("Algning faces")
              item["landmarks"] = self.process_landmarks(image, item["detected_faces"])
              logger.trace("Algned faces: %s", item["landmarks"])
  
              self.finalize(item)
          logger.debug("Completed Align")
keep keep add 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 
plugins/extract/align/dlib.py