                       "w": right - left,
                       "y": top,
                       "h": bottom - top,
                       "landmarksXY": dfl_alignments["source_landmarks"]}
          logger.trace("Adding alignment: (frame: '%s', alignment: %s", sourcefile, alignment)
          alignments.setdefault(sourcefile, list()).append(alignment)
  
 
</s> remove 
        alignments[sourcefile].append(alignment)
 </s> add         logger.trace("Adding alignment: (frame: '%s', alignment: %s", sourcefile, alignment)
        alignments.setdefault(sourcefile, list()).append(alignment) </s> remove         if not alignments.get(sourcefile, None):
            alignments[sourcefile] = list()

 </s> add  </s> remove                     return pickle.loads(chunk[8:-4])
 </s> add                     retval = pickle.loads(chunk[8:-4])
                    logger.trace("Loaded DFL Alignment: (filename: '%s', alignment: %s",
                                 filename, retval)
                    return retval </s> remove         return [np.array([[(0, 0), (0, size - 1),
                           (size - 1, size - 1), (size - 1, 0)]], np.int32)]
 </s> add         return [np.array([[(0, 0), (0, size - 1), (size - 1, size - 1), (size - 1, 0)]], np.int32)]
                     "hash": f_hash,
                       "w": right - left,
                       "y": top,
                       "h": bottom - top,
                     "hash": f_hash,
                       "landmarksXY": dfl_alignments["source_landmarks"]}
          logger.trace("Adding alignment: (frame: '%s', alignment: %s", sourcefile, alignment)
          alignments.setdefault(sourcefile, list()).append(alignment)
  
keep keep add keep keep keep keep
 Add Face Hashes to Alignments (#550)

* Convert main scripts to use face hashes

* Alignment tool: Use hashes, add logging, add face rename function

* More logging. Update Manual tool to work with hashing 
tools/lib_alignments/jobs.py