  
              If a filename with a valid extension is passed in
              this will be used as the serializer, otherwise the
              specified serializer will be used """
          extension = os.path.splitext(filename)[1]
          if extension in (".json", ".p", ".yaml", ".yml"):
              logger.debug("Serializer set from file extension: '%s'", extension)
              retval = Serializer.get_serializer_from_ext(extension)
 
</s> remove     def get_serializer(self, filename, serializer):
 </s> add     @staticmethod
    def get_serializer(filename, serializer):
        logger.debug("Getting serializer: (filename: '%s', serializer: '%s')",
                     filename, serializer)
  
              If a filename with a valid extension is passed in
              this will be used as the serializer, otherwise the
              specified serializer will be used """
        logger.debug("Getting serializer: (filename: '%s', serializer: '%s')",
                     filename, serializer)
          extension = os.path.splitext(filename)[1]
          if extension in (".json", ".p", ".yaml", ".yml"):
              logger.debug("Serializer set from file extension: '%s'", extension)
              retval = Serializer.get_serializer_from_ext(extension)
keep keep keep add 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