submit-zip.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. """Zip manuscript folder.
  2. Usage: zip [--source=<output_dir>] [--dest=<destination_dir>]
  3. """
  4. import argparse
  5. import pathlib
  6. import shutil
  7. EXCLUDE_EXTS = (
  8. '*.pdf',
  9. '*.gz',
  10. '*.aux',
  11. '*.bbl',
  12. '*.blg',
  13. '*.fdb_latexmk',
  14. '*.fls',
  15. '*.log',
  16. '*.out',
  17. )
  18. def clean(source_dir):
  19. source_temp = source_dir.parent / 'condensed_temp'
  20. if source_temp.exists():
  21. shutil.rmtree(source_temp)
  22. # create temp files
  23. shutil.copytree(
  24. source_dir, source_temp, ignore=shutil.ignore_patterns(*EXCLUDE_EXTS)
  25. )
  26. shutil.copy(
  27. source_dir / "manuscript-SI.aux", source_temp / "manuscript-SI.aux"
  28. )
  29. return source_temp
  30. def main(source_dir, output_file='./manuscript'):
  31. source_dir = pathlib.Path(source_dir)
  32. # clean from source dir
  33. cleaned_source_dir = clean(source_dir)
  34. # archive source dir
  35. shutil.make_archive(output_file, format='zip', root_dir=cleaned_source_dir)
  36. # delete temp files
  37. shutil.rmtree(cleaned_source_dir)
  38. if __name__ == "__main__":
  39. parser = argparse.ArgumentParser(description='Zip submission files.')
  40. parser.add_argument(
  41. '--source',
  42. type=str,
  43. default=pathlib.Path(__file__).parent.parent / 'condensed'
  44. )
  45. parser.add_argument(
  46. '--dest',
  47. type=str,
  48. default=pathlib.Path(__file__).parent.parent / 'condensed' /
  49. 'manuscript'
  50. )
  51. args = parser.parse_args()
  52. main(args.source, args.dest)