psdi-data-conversion 0.0.32__tar.gz → 0.0.35__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 (168) hide show
  1. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/.github/workflows/ci-cron.yml +1 -1
  2. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/.github/workflows/ci-pr.yml +0 -1
  3. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/.github/workflows/ci-release.yml +1 -1
  4. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/.github/workflows/job-anchore-scan.yml +1 -1
  5. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/.github/workflows/job-publish-doc.yml +1 -1
  6. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/CONTRIBUTING.md +1 -11
  7. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/PKG-INFO +5 -6
  8. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/README.md +3 -4
  9. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/content/convert.htm +16 -5
  10. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/content/convertato.htm +16 -5
  11. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/content/convertc2x.htm +17 -5
  12. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/content/report.htm +1 -1
  13. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/javascript/convert_common.js +21 -1
  14. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/styles/format.css +19 -0
  15. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/pyproject.toml +1 -2
  16. psdi_data_conversion-0.0.32/.github/workflows/job-deploy-azure.yml +0 -78
  17. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/.github/workflows/ci-deploy-production.yml +0 -0
  18. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/.github/workflows/ci-feature.yml +0 -0
  19. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/.github/workflows/ci-main.yml +0 -0
  20. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/.github/workflows/ci-rc-hotfix.yml +0 -0
  21. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/.github/workflows/job-container-push.yml +0 -0
  22. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/.github/workflows/job-deploy-k8s.yml +0 -0
  23. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/.github/workflows/job-open-pull-request.yml +0 -0
  24. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/.github/workflows/job-tag.yml +0 -0
  25. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/.github/workflows/job-test-gui.yml +0 -0
  26. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/.github/workflows/job-test-python.yml +0 -0
  27. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/.gitignore +0 -0
  28. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/CHANGELOG.md +0 -0
  29. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/LICENSE +0 -0
  30. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/__init__.py +0 -0
  31. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/app.py +0 -0
  32. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/bin/LICENSE_ATOMSK +0 -0
  33. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/bin/LICENSE_C2X +0 -0
  34. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/bin/linux/atomsk +0 -0
  35. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/bin/linux/c2x +0 -0
  36. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/bin/mac/atomsk +0 -0
  37. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/bin/mac/c2x +0 -0
  38. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/constants.py +0 -0
  39. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/converter.py +0 -0
  40. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/converters/__init__.py +0 -0
  41. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/converters/atomsk.py +0 -0
  42. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/converters/base.py +0 -0
  43. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/converters/c2x.py +0 -0
  44. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/converters/openbabel.py +0 -0
  45. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/database.py +0 -0
  46. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/dist.py +0 -0
  47. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/file_io.py +0 -0
  48. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/log_utility.py +0 -0
  49. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/main.py +0 -0
  50. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/scripts/atomsk.sh +0 -0
  51. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/scripts/c2x.sh +0 -0
  52. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/security.py +0 -0
  53. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/content/accessibility.htm +0 -0
  54. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/content/documentation.htm +0 -0
  55. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/content/download.htm +0 -0
  56. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/content/feedback.htm +0 -0
  57. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/content/header-links.html +0 -0
  58. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/content/index-versions/header-links.html +0 -0
  59. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/content/index-versions/psdi-common-footer.html +0 -0
  60. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/content/index-versions/psdi-common-header.html +0 -0
  61. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/content/psdi-common-footer.html +0 -0
  62. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/content/psdi-common-header.html +0 -0
  63. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/data/data.json +0 -0
  64. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/colormode-toggle-dm.svg +0 -0
  65. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/colormode-toggle-lm.svg +0 -0
  66. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/psdi-icon-dark.svg +0 -0
  67. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/psdi-icon-light.svg +0 -0
  68. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/psdi-logo-darktext-simple.png +0 -0
  69. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/psdi-logo-darktext.png +0 -0
  70. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/psdi-logo-lighttext-simple.png +0 -0
  71. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/psdi-logo-lighttext.png +0 -0
  72. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/social-logo-bluesky-black.svg +0 -0
  73. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/social-logo-bluesky-white.svg +0 -0
  74. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/social-logo-instagram-black.svg +0 -0
  75. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/social-logo-instagram-white.svg +0 -0
  76. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/social-logo-linkedin-black.png +0 -0
  77. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/social-logo-linkedin-white.png +0 -0
  78. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/social-logo-mastodon-black.svg +0 -0
  79. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/social-logo-mastodon-white.svg +0 -0
  80. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/social-logo-x-black.svg +0 -0
  81. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/social-logo-x-white.svg +0 -0
  82. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/social-logo-youtube-black.png +0 -0
  83. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/social-logo-youtube-white.png +0 -0
  84. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/ukri-epsr-logo-darktext.png +0 -0
  85. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/ukri-epsr-logo-lighttext.png +0 -0
  86. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/ukri-logo-darktext.png +0 -0
  87. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/img/ukri-logo-lighttext.png +0 -0
  88. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/javascript/accessibility.js +0 -0
  89. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/javascript/common.js +0 -0
  90. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/javascript/convert.js +0 -0
  91. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/javascript/convertato.js +0 -0
  92. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/javascript/convertc2x.js +0 -0
  93. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/javascript/data.js +0 -0
  94. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/javascript/format.js +0 -0
  95. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/javascript/load_accessibility.js +0 -0
  96. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/javascript/psdi-common.js +0 -0
  97. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/javascript/report.js +0 -0
  98. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/static/styles/psdi-common.css +0 -0
  99. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/templates/index.htm +0 -0
  100. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/testing/__init__.py +0 -0
  101. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/testing/constants.py +0 -0
  102. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/testing/conversion_callbacks.py +0 -0
  103. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/testing/conversion_test_specs.py +0 -0
  104. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/psdi_data_conversion/testing/utils.py +0 -0
  105. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/run_local.sh +0 -0
  106. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/scripts/setup_bin.py +0 -0
  107. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/1ARJ.mmcif +0 -0
  108. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/1NE6.mmcif +0 -0
  109. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/5a9z-assembly1.cif +0 -0
  110. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/Fapatite.ins +0 -0
  111. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/aceticacid.mol +0 -0
  112. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/benzyne.molden +0 -0
  113. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/caffeine-smi.tar +0 -0
  114. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/caffeine-smi.tar.gz +0 -0
  115. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/caffeine-smi.zip +0 -0
  116. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/caffeine.inchi +0 -0
  117. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/ch3cl-esp.cub +0 -0
  118. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/cyclopropane_err.mol +0 -0
  119. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/ethanol.xyz +0 -0
  120. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/fullRhinovirus.pdb +0 -0
  121. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/hemoglobin.pdb +0 -0
  122. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/nacl.cif +0 -0
  123. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/nacl.mol +0 -0
  124. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/aceticacid.log.txt +0 -0
  125. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/aceticacid.mol2 +0 -0
  126. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/caffeine-2D-fastest.xyz +0 -0
  127. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/caffeine-3D-best.xyz +0 -0
  128. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/caffeine-ia-okx-oof4.smi +0 -0
  129. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/caffeine-ia-okx-oof4l5.smi +0 -0
  130. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/caffeine-ia-okx.smi +0 -0
  131. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/caffeine-ia-ox.smi +0 -0
  132. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/caffeine-ia.smi +0 -0
  133. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/caffeine-no-flags.smi +0 -0
  134. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/caffeine.smi +0 -0
  135. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/caffeine.xyz +0 -0
  136. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/caffeine_a_in.smi +0 -0
  137. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/caffeine_a_in_kx_f4_l5_out.smi +0 -0
  138. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/caffeine_a_in_kx_f4_out.smi +0 -0
  139. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/caffeine_a_in_kx_out.smi +0 -0
  140. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/caffeine_a_in_x_out.smi +0 -0
  141. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/error_Fapatite_ins_to_cml_OB +0 -0
  142. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/error_cyclopropane_mol_to_xyz_c2x +0 -0
  143. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/error_nacl_mol_to_xyz_atomsk +0 -0
  144. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/hemoglobin_Atomsk.xyz +0 -0
  145. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/hemoglobin_c2x.xyz +0 -0
  146. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/nacl.log +0 -0
  147. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/nacl.mol +0 -0
  148. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/quartz_OB.cif +0 -0
  149. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/quartz_OB.log.txt +0 -0
  150. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/quartz_atomsk.cif +0 -0
  151. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/quartz_atomsk.log.txt +0 -0
  152. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/standard_test.inchi +0 -0
  153. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/xyz_files-mol.zip +0 -0
  154. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/output/xyz_files.log.txt +0 -0
  155. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/periodic_dmol3.outmol +0 -0
  156. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/quartz.xyz +0 -0
  157. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/quartz_err.xyz +0 -0
  158. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/test_data/standard_test.cdxml +0 -0
  159. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/tests/cli_test.py +0 -0
  160. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/tests/converter_test.py +0 -0
  161. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/tests/database_test.py +0 -0
  162. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/tests/dist_test.py +0 -0
  163. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/tests/file_io_test.py +0 -0
  164. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/tests/logging_test.py +0 -0
  165. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/tests/security_test.py +0 -0
  166. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/tests/selenium/files/standard_test.cdxml +0 -0
  167. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/tests/selenium/run.sh +0 -0
  168. {psdi_data_conversion-0.0.32 → psdi_data_conversion-0.0.35}/tests/selenium/selenium_tests.py +0 -0
@@ -13,7 +13,7 @@ on:
13
13
  jobs:
14
14
  update-assets:
15
15
  name: Update common assets
16
- runs-on: ubuntu-latest
16
+ runs-on: psdi-uk-runners
17
17
  steps:
18
18
  - name: Checkout repository
19
19
  uses: actions/checkout@v4
@@ -13,7 +13,6 @@ on:
13
13
  - "Dockerfile"
14
14
  - "LICENSE"
15
15
  - "**.txt"
16
- - "startup.sh"
17
16
  - "deploy/**"
18
17
  - "scripts/fetch-common-style.*"
19
18
  - "scripts/make-index-html.sh"
@@ -56,7 +56,7 @@ jobs:
56
56
  build:
57
57
  needs: [tag]
58
58
  name: Build distribution 📦
59
- runs-on: ubuntu-latest
59
+ runs-on: psdi-uk-runners
60
60
 
61
61
  steps:
62
62
  - uses: actions/checkout@v4
@@ -32,7 +32,7 @@ jobs:
32
32
  contents: read # for actions/checkout to fetch code
33
33
  security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
34
34
  actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
35
- runs-on: ubuntu-latest
35
+ runs-on: psdi-uk-runners
36
36
  steps:
37
37
  - name: Check out the code
38
38
  uses: actions/checkout@v4
@@ -26,7 +26,7 @@ jobs:
26
26
  environment:
27
27
  name: github-pages
28
28
  url: ${{ steps.deployment.outputs.page_url }}
29
- runs-on: ubuntu-latest
29
+ runs-on: psdi-uk-runners
30
30
  steps:
31
31
  - name: Checkout
32
32
  uses: actions/checkout@v4
@@ -352,17 +352,7 @@ The `ci-release.yml` workflow is planned to publish any new releases to PyPI aft
352
352
 
353
353
  ## Deployment
354
354
 
355
- The project is currently deployed to two locations: An Azure webserver, which was used in development, and the STFC infrastructure, which will be used in production.
356
-
357
- ### Azure Deployment
358
-
359
- Azure deployment is handled automatically by the `ci-release.yml` workflow, which triggers the `job-deploy-azure.yml` reusable workflow to perform the deployment. This should not need to be edited often.
360
-
361
- The Azure host starts the server by running the script `startup.sh`. This script can be edited to set any environmental variables which are set up to control the behaviour of the app.
362
-
363
- ### STFC Deployment
364
-
365
- STFC deployment is handled automatically by the `ci-release.yml` workflow, which triggers the `job-deploy-k8s.yml` reusable workflow to perform the deployment.
355
+ Deployment is handled by the `job-deploy-k8s.yml` reusable workflow, which is triggered from `ci-main.yml` to deploy to dev on each push to `main` and `ci-release.yml` to deploy to staging on each push to `release`. When a push to production is desired, it must be triggered manually by calling the `ci-deploy-production.yml` workflow on the `release` branch (it's set up to fail if run on any other branch).
366
356
 
367
357
  TODO - Describe details of setup
368
358
 
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: psdi_data_conversion
3
- Version: 0.0.32
3
+ Version: 0.0.35
4
4
  Summary: Chemistry file format conversion service, provided by PSDI
5
- Project-URL: Homepage, https://psdidev2.azurewebsites.net/
5
+ Project-URL: Homepage, https://data-conversion.psdi.ac.uk/
6
6
  Project-URL: Documentation, https://psdi-uk.github.io/psdi-data-conversion/
7
7
  Project-URL: Repository, https://github.com/PSDI-UK/psdi-data-conversion
8
8
  Project-URL: Issues, https://github.com/PSDI-UK/psdi-data-conversion/issues
@@ -249,7 +249,7 @@ Version: Pre-release 2024-02-27
249
249
 
250
250
  This is the repository for the PSDI PF2 Chemistry File Format Conversion project. The goal of this project is to provide utilities to assist in converting files between the many different file formats used in chemistry, providing information on what converters are available for a given conversion and the expected quality of it, and providing multiple interfaces to perform these conversions. These interfaces are:
251
251
 
252
- - Online web service, available at https://psdidev2.azurewebsites.net
252
+ - Online web service, available at https://data-conversion.psdi.ac.uk/
253
253
  - Version of the web app you can download and run locally (e.g. if you need to convert files which exceed the online app's file size limit)
254
254
  - Command-line application, to run conversions from a terminal
255
255
  - Python library
@@ -319,9 +319,8 @@ This is the repository for the PSDI PF2 Chemistry File Format Conversion project
319
319
  - `LICENSE` (Apache Licence version 2.0)
320
320
  - `pyproject.toml` (Python project metadata and settings)
321
321
  - `README.md` (This file)
322
- - `requirements.txt` (Requirements for the Azure web app deployment of this project)
322
+ - `requirements.txt` (Requirements for the web app deployment of this project)
323
323
  - `run_local.sh` (Helper script to run the web app locally)
324
- - `startup.sh` (Startup script for the Azure web app)
325
324
 
326
325
  ## Requirements
327
326
 
@@ -567,7 +566,7 @@ The code documentation for the Python library is published online at https://psd
567
566
 
568
567
  ## Using the Online Conversion Service
569
568
 
570
- Enter https://psdidev2.azurewebsites.net in a browser. Guidance on usage is given on each page of the website.
569
+ Enter https://data-conversion.psdi.ac.uk/ in a browser. Guidance on usage is given on each page of the website.
571
570
 
572
571
  ## Running the Python/Flask app locally
573
572
 
@@ -4,7 +4,7 @@ Version: Pre-release 2024-02-27
4
4
 
5
5
  This is the repository for the PSDI PF2 Chemistry File Format Conversion project. The goal of this project is to provide utilities to assist in converting files between the many different file formats used in chemistry, providing information on what converters are available for a given conversion and the expected quality of it, and providing multiple interfaces to perform these conversions. These interfaces are:
6
6
 
7
- - Online web service, available at https://psdidev2.azurewebsites.net
7
+ - Online web service, available at https://data-conversion.psdi.ac.uk/
8
8
  - Version of the web app you can download and run locally (e.g. if you need to convert files which exceed the online app's file size limit)
9
9
  - Command-line application, to run conversions from a terminal
10
10
  - Python library
@@ -74,9 +74,8 @@ This is the repository for the PSDI PF2 Chemistry File Format Conversion project
74
74
  - `LICENSE` (Apache Licence version 2.0)
75
75
  - `pyproject.toml` (Python project metadata and settings)
76
76
  - `README.md` (This file)
77
- - `requirements.txt` (Requirements for the Azure web app deployment of this project)
77
+ - `requirements.txt` (Requirements for the web app deployment of this project)
78
78
  - `run_local.sh` (Helper script to run the web app locally)
79
- - `startup.sh` (Startup script for the Azure web app)
80
79
 
81
80
  ## Requirements
82
81
 
@@ -322,7 +321,7 @@ The code documentation for the Python library is published online at https://psd
322
321
 
323
322
  ## Using the Online Conversion Service
324
323
 
325
- Enter https://psdidev2.azurewebsites.net in a browser. Guidance on usage is given on each page of the website.
324
+ Enter https://data-conversion.psdi.ac.uk/ in a browser. Guidance on usage is given on each page of the website.
326
325
 
327
326
  ## Running the Python/Flask app locally
328
327
 
@@ -10,11 +10,19 @@
10
10
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
11
11
  <title>PSDI Data Conversion Service</title>
12
12
  <link rel="icon" type="image/x-icon" href="../img/psdi-icon-dark.svg">
13
+
13
14
  <link href="https://fonts.googleapis.com/css?family=Lato:400" rel="stylesheet" type="text/css">
14
15
  <link href="https://fonts.googleapis.com/css?family=Open+Sans+Condensed:700" rel="stylesheet" type="text/css">
16
+
17
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
18
+ <script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.slim.min.js"></script>
19
+ <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
20
+ <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
21
+
22
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
23
+
15
24
  <link rel="stylesheet" href="../styles/format.css">
16
25
  <script src="../javascript/load_accessibility.js"></script>
17
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
18
26
  <script src="../javascript/common.js" type="module"></script>
19
27
  <script src="../javascript/psdi-common.js" type="module"></script>
20
28
  </head>
@@ -99,16 +107,19 @@
99
107
  <p id="fileChecking">
100
108
  </p>
101
109
  <p id="convertFile">
102
- <input type="checkbox" checked id="extCheck">Enforce file naming checking to ensure uploaded files (and files
110
+ <input type="checkbox" checked id="extCheck"> Enforce file naming checking to ensure uploaded files (and files
103
111
  contained in archives) all have the correct extension<br>
104
- <input type="checkbox" id="requestLog">Also download log file for the conversion<br>
112
+ <input type="checkbox" id="requestLog"> Also download log file for the conversion<br>
105
113
  Select file to convert:
106
114
  <br><input type="file" name="fileToUpload" id="fileToUpload"><br>
107
115
  If you have sensitive data you might prefer to use
108
116
  <a href="download.htm">one of our downloadable tools or Python library</a> rather than uploading your data to
109
117
  our service.<br>
110
- <input type="button" class="button init-disabled" value=" Convert " name="uploadButton" id="uploadButton"
111
- disabled=true>
118
+ <span class="convert-button-and-spinner">
119
+ <input type="button" class="button init-disabled" value=" Convert " name="uploadButton" id="uploadButton"
120
+ disabled=true>
121
+ <span class="loading-spinner spinner-border"></span>
122
+ </span>
112
123
  </p>
113
124
  <div class="medGap"></div>
114
125
  </div>
@@ -10,11 +10,19 @@
10
10
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
11
11
  <title>PSDI Data Conversion Service</title>
12
12
  <link rel="icon" type="image/x-icon" href="../img/psdi-icon-dark.svg">
13
+
13
14
  <link href="https://fonts.googleapis.com/css?family=Lato:400" rel="stylesheet" type="text/css">
14
15
  <link href="https://fonts.googleapis.com/css?family=Open+Sans+Condensed:700" rel="stylesheet" type="text/css">
16
+
17
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
18
+ <script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.slim.min.js"></script>
19
+ <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
20
+ <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
21
+
22
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
23
+
15
24
  <link rel="stylesheet" href="../styles/format.css">
16
25
  <script src="../javascript/load_accessibility.js"></script>
17
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
18
26
  <script src="../javascript/common.js" type="module"></script>
19
27
  <script src="../javascript/psdi-common.js" type="module"></script>
20
28
  </head>
@@ -43,16 +51,19 @@
43
51
  </p>
44
52
  <h6 id="heading"></h6>
45
53
  <p id="convertFile">
46
- <input type="checkbox" checked id="extCheck">Enforce file naming checking to ensure uploaded files (and files
54
+ <input type="checkbox" checked id="extCheck"> Enforce file naming checking to ensure uploaded files (and files
47
55
  contained in archives) all have the correct extension<br>
48
- <input type="checkbox" id="requestLog">Also download log file for the conversion<br>
56
+ <input type="checkbox" id="requestLog"> Also download log file for the conversion<br>
49
57
  Select file to convert:
50
58
  <br><input type="file" name="fileToUpload" id="fileToUpload"><br>
51
59
  If you have sensitive data you might prefer to use
52
60
  <a href="download.htm">one of our downloadable tools or Python library</a> rather than uploading your data to
53
61
  our service.<br>
54
- <input type="button" class="button init-disabled" value=" Convert " name="uploadButton" id="uploadButton"
55
- disabled=true>
62
+ <span class="convert-button-and-spinner">
63
+ <input type="button" class="button init-disabled" value=" Convert " name="uploadButton" id="uploadButton"
64
+ disabled=true>
65
+ <span class="loading-spinner spinner-border"></span>
66
+ </span>
56
67
  </p>
57
68
  </div>
58
69
  <div class="largeGap"></div>
@@ -7,14 +7,23 @@
7
7
  <html>
8
8
 
9
9
  <head>
10
+
10
11
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
11
12
  <title>PSDI Data Conversion Service</title>
12
13
  <link rel="icon" type="image/x-icon" href="../img/psdi-icon-dark.svg">
14
+
13
15
  <link href="https://fonts.googleapis.com/css?family=Lato:400" rel="stylesheet" type="text/css">
14
16
  <link href="https://fonts.googleapis.com/css?family=Open+Sans+Condensed:700" rel="stylesheet" type="text/css">
17
+
18
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
19
+ <script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.slim.min.js"></script>
20
+ <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
21
+ <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
22
+
23
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
24
+
15
25
  <link rel="stylesheet" href="../styles/format.css">
16
26
  <script src="../javascript/load_accessibility.js"></script>
17
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
18
27
  <script src="../javascript/common.js" type="module"></script>
19
28
  <script src="../javascript/psdi-common.js" type="module"></script>
20
29
  </head>
@@ -43,16 +52,19 @@
43
52
  </p>
44
53
  <h6 id="heading"></h6>
45
54
  <p id="convertFile">
46
- <input type="checkbox" checked id="extCheck">Enforce file naming checking to ensure uploaded files (and files
55
+ <input type="checkbox" checked id="extCheck"> Enforce file naming checking to ensure uploaded files (and files
47
56
  contained in archives) all have the correct extension<br>
48
- <input type="checkbox" id="requestLog">Also download log file for the conversion<br>
57
+ <input type="checkbox" id="requestLog"> Also download log file for the conversion<br>
49
58
  Select file to convert:
50
59
  <br><input type="file" name="fileToUpload" id="fileToUpload"><br>
51
60
  If you have sensitive data you might prefer to use
52
61
  <a href="download.htm">one of our downloadable tools or Python library</a> rather than uploading your data to
53
62
  our service.<br>
54
- <input type="button" class="button init-disabled" value=" Convert " name="uploadButton" id="uploadButton"
55
- disabled=true>
63
+ <span class="convert-button-and-spinner">
64
+ <input type="button" class="button init-disabled" value=" Convert " name="uploadButton" id="uploadButton"
65
+ disabled=true>
66
+ <span class="loading-spinner spinner-border"></span>
67
+ </span>
56
68
  </p>
57
69
  </div>
58
70
  <div class="largeGap"></div>
@@ -86,7 +86,7 @@
86
86
  <div class="smallGap"></div>
87
87
  <p>
88
88
  To report a missing format or conversion, please use
89
- <a href="https://psdidev2.azurewebsites.net/static/content/report.htm?origin=local">the interface on the public
89
+ <a href="https://data-conversion.psdi.ac.uk/static/content/report.htm?origin=local">the interface on the public
90
90
  web app</a>.
91
91
  </p>
92
92
  <div class="medGap"></div>
@@ -58,6 +58,8 @@ export function commonConvertReady(converter) {
58
58
  // Converts user-supplied file to another format and downloads the resulting file
59
59
  export function convertFile(form_data, download_fname, fname) {
60
60
 
61
+ showSpinner();
62
+
61
63
  let convertTimedOut = false;
62
64
 
63
65
  var jqXHR = $.ajax({
@@ -68,6 +70,7 @@ export function convertFile(form_data, download_fname, fname) {
68
70
  contentType: false,
69
71
  timeout: CONVERT_TIMEOUT,
70
72
  success: async function () {
73
+ hideSpinner();
71
74
  if (!convertTimedOut) {
72
75
  await downloadFile(`../downloads/${download_fname}`, download_fname)
73
76
 
@@ -105,6 +108,7 @@ export function convertFile(form_data, download_fname, fname) {
105
108
  })
106
109
  },
107
110
  error: function (xmlhttprequest, textstatus, message) {
111
+ hideSpinner();
108
112
  if (textstatus === "timeout") {
109
113
  convertTimedOut = true;
110
114
  alert("ERROR: Conversion attempt timed out. This may be because the conversion is too complicated, " +
@@ -216,7 +220,8 @@ function checkFile(event) {
216
220
  if (message !== "")
217
221
  message += "\n\n";
218
222
  message += "The file exceeds the maximum size limit of " + (max_file_size / MEGABYTE).toFixed(2) +
219
- " MB; its size is " + (file.size / MEGABYTE).toFixed(2) + " MB.";
223
+ " MB; its size is " + (file.size / MEGABYTE).toFixed(2) + " MB. Please either log in for an increased " +
224
+ "file size limit, or see the Downloads page to run the app locally with no limit.";
220
225
  allGood = false;
221
226
  }
222
227
 
@@ -249,4 +254,19 @@ async function downloadFile(path, filename) {
249
254
  a.click();
250
255
  a.remove();
251
256
  });
257
+ }
258
+
259
+
260
+ /**
261
+ * Show the loading spinner
262
+ */
263
+ function showSpinner() {
264
+ $(".loading-spinner").css({ display: "inherit" });
265
+ }
266
+
267
+ /**
268
+ * Hide the loading spinner
269
+ */
270
+ function hideSpinner() {
271
+ $(".loading-spinner").css({ display: "none" });
252
272
  }
@@ -144,4 +144,23 @@ select#dark-background option {
144
144
 
145
145
  [production-mode=False] .dev-only {
146
146
  display: none;
147
+ }
148
+
149
+ .footer__hline hr {
150
+ border-top-style : none;
151
+ border-bottom-style: inset;
152
+ border-bottom-width: 1px;
153
+ }
154
+
155
+ /* Convert button and loading spinner */
156
+ .convert-button-and-spinner {
157
+ display : flex;
158
+ flex-direction: row;
159
+ align-items : center;
160
+ }
161
+
162
+ .loading-spinner {
163
+ display: none;
164
+ color : var(--ifm-color-primary);
165
+ scale : 75%;
147
166
  }
@@ -48,7 +48,7 @@ doc = ["pdoc3"]
48
48
  psdi-data-convert = "psdi_data_conversion.main:main"
49
49
 
50
50
  [project.urls]
51
- Homepage = "https://psdidev2.azurewebsites.net/"
51
+ Homepage = "https://data-conversion.psdi.ac.uk/"
52
52
  Documentation = "https://psdi-uk.github.io/psdi-data-conversion/"
53
53
  Repository = "https://github.com/PSDI-UK/psdi-data-conversion"
54
54
  Issues = "https://github.com/PSDI-UK/psdi-data-conversion/issues"
@@ -70,7 +70,6 @@ exclude = [
70
70
  "scripts/make-index-html.sh",
71
71
  "Dockerfile",
72
72
  "requirements.txt",
73
- "startup.sh",
74
73
  ]
75
74
 
76
75
  # The following lines run a script which excludes binaries for platforms other than the current from the binary.
@@ -1,78 +0,0 @@
1
- # Reusable workflow intended to be called as a job by other workflows
2
-
3
- # Deploys the project to the Azure-hosted web app
4
-
5
- # Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
6
- # More GitHub Actions for Azure: https://github.com/Azure/actions
7
- # More info on Python, GitHub Actions, and Azure App Service: https://aka.ms/python-webapps-actions
8
-
9
- name: Job - Deploy to Azure
10
- run-name: Deploy to Azure
11
-
12
- on:
13
- workflow_call: # allow this workflow to be called from other workflows
14
-
15
- jobs:
16
- build:
17
- runs-on: ubuntu-latest
18
-
19
- steps:
20
- - uses: actions/checkout@v4
21
-
22
- - name: Set up Python version
23
- uses: actions/setup-python@v1
24
- with:
25
- python-version: "3.12"
26
-
27
- - name: Create and start virtual environment
28
- run: |
29
- python -m venv venv
30
- source venv/bin/activate
31
-
32
- - name: Install dependencies
33
- run: pip install -r requirements.txt
34
-
35
- # Optional: Add step to run tests here (PyTest, Django test suites, etc.)
36
-
37
- - name: Zip artifact for deployment
38
- run: zip release.zip ./* -r
39
-
40
- - name: Upload artifact for deployment jobs
41
- uses: actions/upload-artifact@v4
42
- with:
43
- name: python-app
44
- path: |
45
- release.zip
46
- !venv/
47
-
48
- deploy:
49
- runs-on: ubuntu-latest
50
- needs: build
51
- environment:
52
- name: "production"
53
- url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
54
- permissions:
55
- id-token: write #This is required for requesting the JWT
56
-
57
- steps:
58
- - name: Download artifact from build job
59
- uses: actions/download-artifact@v4
60
- with:
61
- name: python-app
62
-
63
- - name: Unzip artifact for deployment
64
- run: unzip release.zip
65
-
66
- - name: Login to Azure
67
- uses: azure/login@v2
68
- with:
69
- client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_5D29518D1EE14107A61C0D5316BD180E }}
70
- tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_BBA11EDFC02844E1AC766345289C1140 }}
71
- subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_2AA47809BF8D46BD8B6335589DBE4183 }}
72
-
73
- - name: "Deploy to Azure Web App"
74
- uses: azure/webapps-deploy@v2
75
- id: deploy-to-webapp
76
- with:
77
- app-name: "PSDIDEV2"
78
- slot-name: "production"