psdi-data-conversion 0.1.0__tar.gz → 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/PKG-INFO +1 -1
  2. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/app.py +42 -16
  3. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/templates/index.htm +2 -2
  4. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/.gitignore +0 -0
  5. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/CHANGELOG.md +0 -0
  6. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/CONTRIBUTING.md +0 -0
  7. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/LICENSE +0 -0
  8. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/README.md +0 -0
  9. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/__init__.py +0 -0
  10. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/bin/LICENSE_ATOMSK +0 -0
  11. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/bin/LICENSE_C2X +0 -0
  12. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/bin/linux/atomsk +0 -0
  13. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/bin/linux/c2x +0 -0
  14. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/bin/mac/atomsk +0 -0
  15. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/bin/mac/c2x +0 -0
  16. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/constants.py +0 -0
  17. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/converter.py +0 -0
  18. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/converters/__init__.py +0 -0
  19. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/converters/atomsk.py +0 -0
  20. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/converters/base.py +0 -0
  21. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/converters/c2x.py +0 -0
  22. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/converters/openbabel.py +0 -0
  23. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/database.py +0 -0
  24. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/dist.py +0 -0
  25. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/file_io.py +0 -0
  26. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/log_utility.py +0 -0
  27. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/main.py +0 -0
  28. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/scripts/atomsk.sh +0 -0
  29. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/scripts/c2x.sh +0 -0
  30. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/security.py +0 -0
  31. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/content/accessibility.htm +0 -0
  32. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/content/convert.htm +0 -0
  33. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/content/convertato.htm +0 -0
  34. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/content/convertc2x.htm +0 -0
  35. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/content/documentation.htm +0 -0
  36. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/content/download.htm +0 -0
  37. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/content/feedback.htm +0 -0
  38. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/content/header-links.html +0 -0
  39. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/content/index-versions/header-links.html +0 -0
  40. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/content/index-versions/psdi-common-footer.html +0 -0
  41. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/content/index-versions/psdi-common-header.html +0 -0
  42. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/content/psdi-common-footer.html +0 -0
  43. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/content/psdi-common-header.html +0 -0
  44. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/content/report.htm +0 -0
  45. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/data/data.json +0 -0
  46. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/colormode-toggle-dm.svg +0 -0
  47. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/colormode-toggle-lm.svg +0 -0
  48. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/psdi-icon-dark.svg +0 -0
  49. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/psdi-icon-light.svg +0 -0
  50. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/psdi-logo-darktext-simple.png +0 -0
  51. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/psdi-logo-darktext.png +0 -0
  52. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/psdi-logo-lighttext-simple.png +0 -0
  53. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/psdi-logo-lighttext.png +0 -0
  54. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/social-logo-bluesky-black.svg +0 -0
  55. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/social-logo-bluesky-white.svg +0 -0
  56. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/social-logo-instagram-black.svg +0 -0
  57. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/social-logo-instagram-white.svg +0 -0
  58. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/social-logo-linkedin-black.png +0 -0
  59. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/social-logo-linkedin-white.png +0 -0
  60. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/social-logo-mastodon-black.svg +0 -0
  61. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/social-logo-mastodon-white.svg +0 -0
  62. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/social-logo-x-black.svg +0 -0
  63. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/social-logo-x-white.svg +0 -0
  64. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/social-logo-youtube-black.png +0 -0
  65. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/social-logo-youtube-white.png +0 -0
  66. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/ukri-epsr-logo-darktext.png +0 -0
  67. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/ukri-epsr-logo-lighttext.png +0 -0
  68. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/ukri-logo-darktext.png +0 -0
  69. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/img/ukri-logo-lighttext.png +0 -0
  70. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/javascript/accessibility.js +0 -0
  71. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/javascript/common.js +0 -0
  72. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/javascript/convert.js +0 -0
  73. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/javascript/convert_common.js +0 -0
  74. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/javascript/convertato.js +0 -0
  75. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/javascript/convertc2x.js +0 -0
  76. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/javascript/data.js +0 -0
  77. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/javascript/format.js +0 -0
  78. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/javascript/load_accessibility.js +0 -0
  79. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/javascript/psdi-common.js +0 -0
  80. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/javascript/report.js +0 -0
  81. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/styles/format.css +0 -0
  82. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/static/styles/psdi-common.css +0 -0
  83. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/testing/__init__.py +0 -0
  84. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/testing/constants.py +0 -0
  85. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/testing/conversion_callbacks.py +0 -0
  86. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/testing/conversion_test_specs.py +0 -0
  87. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/testing/gui.py +0 -0
  88. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/testing/utils.py +0 -0
  89. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/psdi_data_conversion/utils.py +0 -0
  90. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/pyproject.toml +0 -0
  91. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/scripts/setup_bin.py +0 -0
  92. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/1ARJ.mmcif +0 -0
  93. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/1NE6.mmcif +0 -0
  94. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/5a9z-assembly1.cif +0 -0
  95. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/Fapatite.ins +0 -0
  96. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/aceticacid.mol +0 -0
  97. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/benzyne.molden +0 -0
  98. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/caffeine-smi.tar +0 -0
  99. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/caffeine-smi.tar.gz +0 -0
  100. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/caffeine-smi.zip +0 -0
  101. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/caffeine.inchi +0 -0
  102. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/ch3cl-esp.cub +0 -0
  103. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/cyclopropane_err.mol +0 -0
  104. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/ethanol.xyz +0 -0
  105. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/fullRhinovirus.pdb +0 -0
  106. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/hemoglobin.pdb +0 -0
  107. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/nacl.cif +0 -0
  108. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/nacl.mol +0 -0
  109. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/aceticacid.log.txt +0 -0
  110. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/aceticacid.mol2 +0 -0
  111. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/caffeine-2D-fastest.xyz +0 -0
  112. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/caffeine-3D-best.xyz +0 -0
  113. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/caffeine.smi +0 -0
  114. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/caffeine.xyz +0 -0
  115. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/caffeine_a_in.smi +0 -0
  116. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/caffeine_a_in_kx_f4_l5_out.smi +0 -0
  117. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/caffeine_a_in_kx_f4_out.smi +0 -0
  118. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/caffeine_a_in_kx_out.smi +0 -0
  119. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/caffeine_a_in_x_out.smi +0 -0
  120. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/hemoglobin_Atomsk.xyz +0 -0
  121. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/hemoglobin_c2x.xyz +0 -0
  122. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/nacl.log +0 -0
  123. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/nacl.mol +0 -0
  124. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/quartz_OB.cif +0 -0
  125. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/quartz_OB.log.txt +0 -0
  126. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/quartz_atomsk.cif +0 -0
  127. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/quartz_atomsk.log.txt +0 -0
  128. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/standard_test.inchi +0 -0
  129. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/xyz_files-mol.zip +0 -0
  130. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/output/xyz_files.log.txt +0 -0
  131. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/periodic_dmol3.outmol +0 -0
  132. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/quartz.xyz +0 -0
  133. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/quartz_err.xyz +0 -0
  134. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/test_data/standard_test.cdxml +0 -0
  135. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/tests/gui/gui_test.py +0 -0
  136. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/tests/python/cli_test.py +0 -0
  137. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/tests/python/converter_test.py +0 -0
  138. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/tests/python/database_test.py +0 -0
  139. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/tests/python/dist_test.py +0 -0
  140. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/tests/python/file_io_test.py +0 -0
  141. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/tests/python/logging_test.py +0 -0
  142. {psdi_data_conversion-0.1.0 → psdi_data_conversion-0.1.1}/tests/python/security_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: psdi_data_conversion
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: Chemistry file format conversion service, provided by PSDI
5
5
  Project-URL: Homepage, https://data-conversion.psdi.ac.uk/
6
6
  Project-URL: Documentation, https://psdi-uk.github.io/psdi-data-conversion/
@@ -6,7 +6,6 @@ This script acts as a server for the PSDI Data Conversion Service website.
6
6
  """
7
7
 
8
8
  import json
9
- from multiprocessing import Lock
10
9
  import os
11
10
  import sys
12
11
  from argparse import ArgumentParser
@@ -14,6 +13,7 @@ from collections.abc import Callable
14
13
  from datetime import datetime
15
14
  from functools import wraps
16
15
  from hashlib import md5
16
+ from multiprocessing import Lock
17
17
  from subprocess import run
18
18
  from traceback import format_exc
19
19
  from typing import Any
@@ -130,42 +130,68 @@ def limit_upload_size():
130
130
  limit_upload_size()
131
131
 
132
132
 
133
- def get_last_sha() -> str:
133
+ def get_tag_and_sha() -> str:
134
134
  """Get the SHA of the last commit
135
135
  """
136
136
 
137
- # First check if the SHA is provided through an environmental variable
138
- ev_sha = os.environ.get(SHA_EV)
139
- if ev_sha:
140
- return ev_sha
141
-
142
137
  try:
143
- # This bash command calls `git log` to get info on the last commit, uses `head` to trim it to one line, then
144
- # uses `gawk` to get just the second word of this line, which is the SHA of this commit
145
- cmd = "git log -n 1 | head -n 1 | gawk '{print($2)}'"
138
+ # This bash command calls `git tag` to get a sorted list of tags, with the most recent at the top, then uses
139
+ # `head` to trim it to one line
140
+ cmd = "git tag --sort -version:refname | head -n 1"
146
141
 
147
142
  out_bytes = run(cmd, shell=True, capture_output=True).stdout
148
- out_str = str(out_bytes.decode()).strip()
143
+ tag = str(out_bytes.decode()).strip()
144
+
145
+ # Get the SHA associated with this tag
146
+ cmd = f"git show {tag}" + " | head -n 1 | gawk '{print($2)}'"
147
+
148
+ out_bytes = run(cmd, shell=True, capture_output=True).stdout
149
+ tag_sha = str(out_bytes.decode()).strip()
149
150
 
150
151
  except Exception:
151
- print("ERROR: Could not determine SHA of most recent commit. Error was:\n" + format_exc(),
152
+ print("ERROR: Could not determine most recent tag. Error was:\n" + format_exc(),
152
153
  file=sys.stderr)
153
- out_str = "N/A"
154
+ tag = ""
155
+ tag_sha = None
156
+
157
+ # First check if the SHA is provided through an environmental variable
158
+ ev_sha = os.environ.get(SHA_EV)
159
+ if ev_sha:
160
+ sha = ev_sha
161
+ else:
162
+ try:
163
+ # This bash command calls `git log` to get info on the last commit, uses `head` to trim it to one line, then
164
+ # uses `gawk` to get just the second word of this line, which is the SHA of this commit
165
+ cmd = "git log -n 1 | head -n 1 | gawk '{print($2)}'"
166
+
167
+ out_bytes = run(cmd, shell=True, capture_output=True).stdout
168
+ sha = str(out_bytes.decode()).strip()
169
+
170
+ except Exception:
171
+ print("ERROR: Could not determine SHA of most recent commit. Error was:\n" + format_exc(),
172
+ file=sys.stderr)
173
+ sha = ""
174
+
175
+ # If the SHA of the tag is the same as the current SHA, we indicate this by returning a blank SHA
176
+ if tag_sha == sha:
177
+ sha = ""
154
178
 
155
- return out_str
179
+ return (tag, sha)
156
180
 
157
181
 
158
182
  @app.route('/')
159
183
  def website():
160
184
  """Return the web page along with the token
161
185
  """
186
+ tag, sha = get_tag_and_sha()
162
187
  return render_template("index.htm",
163
188
  token=token,
164
189
  max_file_size=max_file_size,
165
190
  max_file_size_ob=max_file_size_ob,
166
191
  service_mode=service_mode,
167
192
  production_mode=production_mode,
168
- sha=get_last_sha())
193
+ tag=tag,
194
+ sha=sha)
169
195
 
170
196
 
171
197
  @app.route('/convert/', methods=['POST'])
@@ -273,7 +299,7 @@ def feedback():
273
299
 
274
300
  # Write data in JSON format and send to stdout
275
301
  logLock.acquire()
276
- sys.stdout.write(f"{json.dumps(entry) + '\n'}")
302
+ sys.stdout.write(f"{json.dumps(entry) + '\n'}")
277
303
  logLock.release()
278
304
 
279
305
  return Response(status=201)
@@ -120,9 +120,9 @@
120
120
  <div class="medGap"></div>
121
121
  </div>
122
122
  </form>
123
- {% if sha %}
123
+ {% if tag %}
124
124
  <div class="secondary prod-only">
125
- <div class="max-width-box">SHA: {{ sha }}</div>
125
+ <div class="max-width-box">PSDI Data Conversion {{ tag }} {% if sha %} (SHA: {{ sha }}) {% endif %}</div>
126
126
  </div>
127
127
  {% endif %}
128
128
  <script src="{{url_for('static', filename='/javascript/format.js')}}" type="module" language="JavaScript"></script>