def handle(self, *args, **options): print("Working on file {}".format(options['pdb_file'])) frag_sp = FragmentSuperpose(options['pdb_file']) superposed_fragments = frag_sp.superpose_fragments(use_similar=True) if superposed_fragments == []: print("No fragments were aligned.") else: print("{} fragments were aligned.".format( len(superposed_fragments))) io = PDBIO() zipf = zipfile.ZipFile(options['pdb_file'].replace('.pdb', '.zip'), 'a', zipfile.ZIP_DEFLATED) for fragment, pdb_data in superposed_fragments: io.set_structure(pdb_data) tmp = StringIO() io.save(tmp) zipf.writestr( "all_fragments/{!s}".format(fragment.generate_filename()), tmp.getvalue()) zipf.close()