  
      @property
      def have_alignments_file(self):
          """ Return whether an alignments file exists """
          return os.path.exists(self.file)
  
      # << INIT FUNCTIONS >> #
  
      def get_serializer(self, filename, serializer):
          """ Set the serializer to be used for loading and
 
</s> remove     def get_serializer(self, filename, serializer):
 </s> add     @staticmethod
    def get_serializer(filename, serializer): </s> remove         return sum(len(faces) for faces in self.data.values())
 </s> add         retval = sum(len(faces) for faces in self.data.values())
        logger.trace(retval)
        return retval </s> remove         """ Load the alignments data if it exists or create empty dict """
 </s> add         """ Load the alignments data
            Override for custom loading logic """
        logger.debug("Loading alignments")
        retval = os.path.exists(self.file)
        logger.trace(retval)
        return retval
  
      @property
      def have_alignments_file(self):
          """ Return whether an alignments file exists """
        retval = os.path.exists(self.file)
        logger.trace(retval)
        return retval
  
      # << INIT FUNCTIONS >> #
  
      def get_serializer(self, filename, serializer):
          """ Set the serializer to be used for loading and
keep keep keep keep replace 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