CodeEntropy 2.1.0__tar.gz → 2.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 (324) hide show
  1. {codeentropy-2.1.0 → codeentropy-2.1.1}/.github/workflows/daily.yaml +5 -3
  2. {codeentropy-2.1.0 → codeentropy-2.1.1}/.github/workflows/pr.yaml +63 -25
  3. codeentropy-2.1.1/.github/workflows/weekly-regression.yaml +90 -0
  4. {codeentropy-2.1.0 → codeentropy-2.1.1}/.gitignore +1 -1
  5. {codeentropy-2.1.0 → codeentropy-2.1.1}/CITATION.cff +2 -2
  6. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/__init__.py +1 -1
  7. {codeentropy-2.1.0 → codeentropy-2.1.1}/PKG-INFO +2 -1
  8. {codeentropy-2.1.0 → codeentropy-2.1.1}/conda-recipe/meta.yaml +1 -0
  9. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/developer_guide.rst +1 -1
  10. {codeentropy-2.1.0 → codeentropy-2.1.1}/pyproject.toml +12 -1
  11. codeentropy-2.1.1/tests/__init__.py +1 -0
  12. codeentropy-2.1.1/tests/regression/baselines/benzaldehyde/axes_off.json +45 -0
  13. codeentropy-2.1.1/tests/regression/baselines/benzaldehyde/combined_forcetorque_false.json +45 -0
  14. codeentropy-2.1.0/tests/regression/baselines/benzaldehyde.json → codeentropy-2.1.1/tests/regression/baselines/benzaldehyde/default.json +8 -8
  15. codeentropy-2.1.1/tests/regression/baselines/benzaldehyde/frame_window.json +45 -0
  16. codeentropy-2.1.1/tests/regression/baselines/benzaldehyde/grouping_each.json +153 -0
  17. codeentropy-2.1.1/tests/regression/baselines/benzaldehyde/rad.json +45 -0
  18. codeentropy-2.1.1/tests/regression/baselines/benzaldehyde/selection_subset.json +45 -0
  19. codeentropy-2.1.1/tests/regression/baselines/benzene/axes_off.json +45 -0
  20. codeentropy-2.1.1/tests/regression/baselines/benzene/combined_forcetorque_off.json +45 -0
  21. codeentropy-2.1.0/tests/regression/baselines/benzene.json → codeentropy-2.1.1/tests/regression/baselines/benzene/default.json +8 -8
  22. codeentropy-2.1.1/tests/regression/baselines/benzene/frame_window.json +45 -0
  23. codeentropy-2.1.1/tests/regression/baselines/benzene/grouping_each.json +153 -0
  24. codeentropy-2.1.1/tests/regression/baselines/benzene/rad.json +45 -0
  25. codeentropy-2.1.1/tests/regression/baselines/benzene/selection_subset.json +45 -0
  26. codeentropy-2.1.1/tests/regression/baselines/cyclohexane/axes_off.json +45 -0
  27. codeentropy-2.1.1/tests/regression/baselines/cyclohexane/combined_forcetorque_off.json +45 -0
  28. codeentropy-2.1.0/tests/regression/baselines/cyclohexane.json → codeentropy-2.1.1/tests/regression/baselines/cyclohexane/default.json +8 -8
  29. codeentropy-2.1.1/tests/regression/baselines/cyclohexane/frame_window.json +45 -0
  30. codeentropy-2.1.1/tests/regression/baselines/cyclohexane/grouping_each.json +153 -0
  31. codeentropy-2.1.1/tests/regression/baselines/cyclohexane/rad.json +45 -0
  32. codeentropy-2.1.1/tests/regression/baselines/cyclohexane/selection_subset.json +45 -0
  33. codeentropy-2.1.1/tests/regression/baselines/dna/axes_off.json +61 -0
  34. codeentropy-2.1.1/tests/regression/baselines/dna/combined_forcetorque_off.json +61 -0
  35. codeentropy-2.1.0/tests/regression/baselines/dna.json → codeentropy-2.1.1/tests/regression/baselines/dna/default.json +7 -7
  36. codeentropy-2.1.1/tests/regression/baselines/dna/frame_window.json +61 -0
  37. codeentropy-2.1.1/tests/regression/baselines/dna/grouping_each.json +61 -0
  38. codeentropy-2.1.1/tests/regression/baselines/dna/selection_subset.json +61 -0
  39. codeentropy-2.1.1/tests/regression/baselines/ethyl-acetate/axes_off.json +45 -0
  40. codeentropy-2.1.1/tests/regression/baselines/ethyl-acetate/combined_forcetorque_off.json +45 -0
  41. codeentropy-2.1.0/tests/regression/baselines/ethyl-acetate.json → codeentropy-2.1.1/tests/regression/baselines/ethyl-acetate/default.json +8 -8
  42. codeentropy-2.1.1/tests/regression/baselines/ethyl-acetate/frame_window.json +45 -0
  43. codeentropy-2.1.1/tests/regression/baselines/ethyl-acetate/grouping_each.json +153 -0
  44. codeentropy-2.1.1/tests/regression/baselines/ethyl-acetate/rad.json +45 -0
  45. codeentropy-2.1.1/tests/regression/baselines/ethyl-acetate/selection_subset.json +45 -0
  46. codeentropy-2.1.1/tests/regression/baselines/methane/axes_off.json +42 -0
  47. codeentropy-2.1.1/tests/regression/baselines/methane/combined_forcetorque_off.json +42 -0
  48. codeentropy-2.1.0/tests/regression/baselines/methane.json → codeentropy-2.1.1/tests/regression/baselines/methane/default.json +8 -8
  49. codeentropy-2.1.1/tests/regression/baselines/methane/frame_window.json +42 -0
  50. codeentropy-2.1.1/tests/regression/baselines/methane/grouping_each.json +123 -0
  51. codeentropy-2.1.1/tests/regression/baselines/methane/rad.json +42 -0
  52. codeentropy-2.1.1/tests/regression/baselines/methane/selection_subset.json +42 -0
  53. codeentropy-2.1.1/tests/regression/baselines/methanol/axes_off.json +45 -0
  54. codeentropy-2.1.1/tests/regression/baselines/methanol/combined_forcetorque_off.json +45 -0
  55. codeentropy-2.1.0/tests/regression/baselines/methanol.json → codeentropy-2.1.1/tests/regression/baselines/methanol/default.json +8 -8
  56. codeentropy-2.1.1/tests/regression/baselines/methanol/frame_window.json +45 -0
  57. codeentropy-2.1.1/tests/regression/baselines/methanol/grouping_each.json +153 -0
  58. codeentropy-2.1.1/tests/regression/baselines/methanol/rad.json +45 -0
  59. codeentropy-2.1.1/tests/regression/baselines/methanol/selection_subset.json +45 -0
  60. codeentropy-2.1.1/tests/regression/baselines/octonol/axes_off.json +45 -0
  61. codeentropy-2.1.1/tests/regression/baselines/octonol/combined_forcetorque_off.json +45 -0
  62. codeentropy-2.1.0/tests/regression/baselines/octonol.json → codeentropy-2.1.1/tests/regression/baselines/octonol/default.json +8 -8
  63. codeentropy-2.1.1/tests/regression/baselines/octonol/frame_window.json +45 -0
  64. codeentropy-2.1.1/tests/regression/baselines/octonol/grouping_each.json +153 -0
  65. codeentropy-2.1.1/tests/regression/baselines/octonol/rad.json +45 -0
  66. codeentropy-2.1.1/tests/regression/baselines/octonol/selection_subset.json +45 -0
  67. codeentropy-2.1.1/tests/regression/baselines/water/axes_off.json +42 -0
  68. codeentropy-2.1.1/tests/regression/baselines/water/combined_forcetorque_off.json +42 -0
  69. codeentropy-2.1.0/tests/regression/baselines/water.json → codeentropy-2.1.1/tests/regression/baselines/water/default.json +8 -8
  70. codeentropy-2.1.1/tests/regression/baselines/water/frame_window.json +42 -0
  71. codeentropy-2.1.1/tests/regression/baselines/water/grouping_each.json +123 -0
  72. codeentropy-2.1.0/tests/regression/baselines/water_rad.json → codeentropy-2.1.1/tests/regression/baselines/water/rad.json +8 -8
  73. codeentropy-2.1.1/tests/regression/baselines/water/selection_subset.json +42 -0
  74. codeentropy-2.1.1/tests/regression/baselines/water/water_off.json +42 -0
  75. codeentropy-2.1.1/tests/regression/cases.py +103 -0
  76. codeentropy-2.1.1/tests/regression/configs/benzaldehyde/axes_off.yaml +15 -0
  77. codeentropy-2.1.1/tests/regression/configs/benzaldehyde/combined_forcetorque_false.yaml +15 -0
  78. codeentropy-2.1.1/tests/regression/configs/benzaldehyde/frame_window.yaml +14 -0
  79. codeentropy-2.1.1/tests/regression/configs/benzaldehyde/grouping_each.yaml +15 -0
  80. codeentropy-2.1.0/tests/regression/configs/benzaldehyde_rad/config.yaml → codeentropy-2.1.1/tests/regression/configs/benzaldehyde/rad.yaml +1 -1
  81. codeentropy-2.1.1/tests/regression/configs/benzaldehyde/selection_subset.yaml +14 -0
  82. codeentropy-2.1.1/tests/regression/configs/benzene/axes_off.yaml +15 -0
  83. codeentropy-2.1.1/tests/regression/configs/benzene/combined_forcetorque_off.yaml +15 -0
  84. codeentropy-2.1.0/tests/regression/configs/benzene/config.yaml → codeentropy-2.1.1/tests/regression/configs/benzene/default.yaml +2 -2
  85. codeentropy-2.1.1/tests/regression/configs/benzene/frame_window.yaml +14 -0
  86. codeentropy-2.1.1/tests/regression/configs/benzene/grouping_each.yaml +15 -0
  87. codeentropy-2.1.0/tests/regression/configs/benzene_rad/config.yaml → codeentropy-2.1.1/tests/regression/configs/benzene/rad.yaml +3 -3
  88. codeentropy-2.1.1/tests/regression/configs/benzene/selection_subset.yaml +14 -0
  89. codeentropy-2.1.1/tests/regression/configs/cyclohexane/axes_off.yaml +15 -0
  90. codeentropy-2.1.1/tests/regression/configs/cyclohexane/combined_forcetorque_off.yaml +15 -0
  91. codeentropy-2.1.0/tests/regression/configs/cyclohexane/config.yaml → codeentropy-2.1.1/tests/regression/configs/cyclohexane/default.yaml +2 -2
  92. codeentropy-2.1.1/tests/regression/configs/cyclohexane/frame_window.yaml +14 -0
  93. codeentropy-2.1.1/tests/regression/configs/cyclohexane/grouping_each.yaml +15 -0
  94. codeentropy-2.1.0/tests/regression/configs/cyclohexane_rad/config.yaml → codeentropy-2.1.1/tests/regression/configs/cyclohexane/rad.yaml +3 -3
  95. codeentropy-2.1.1/tests/regression/configs/cyclohexane/selection_subset.yaml +14 -0
  96. codeentropy-2.1.1/tests/regression/configs/dna/axes_off.yaml +11 -0
  97. codeentropy-2.1.1/tests/regression/configs/dna/combined_forcetorque_off.yaml +11 -0
  98. codeentropy-2.1.0/tests/regression/configs/dna/config.yaml → codeentropy-2.1.1/tests/regression/configs/dna/default.yaml +1 -1
  99. codeentropy-2.1.1/tests/regression/configs/dna/frame_window.yaml +10 -0
  100. codeentropy-2.1.1/tests/regression/configs/dna/grouping_each.yaml +11 -0
  101. codeentropy-2.1.1/tests/regression/configs/dna/selection_subset.yaml +10 -0
  102. codeentropy-2.1.1/tests/regression/configs/ethyl-acetate/axes_off.yaml +15 -0
  103. codeentropy-2.1.1/tests/regression/configs/ethyl-acetate/combined_forcetorque_off.yaml +15 -0
  104. codeentropy-2.1.0/tests/regression/configs/ethyl-acetate/config.yaml → codeentropy-2.1.1/tests/regression/configs/ethyl-acetate/default.yaml +2 -2
  105. codeentropy-2.1.1/tests/regression/configs/ethyl-acetate/frame_window.yaml +14 -0
  106. codeentropy-2.1.1/tests/regression/configs/ethyl-acetate/grouping_each.yaml +15 -0
  107. codeentropy-2.1.0/tests/regression/configs/ethyl-acetate_rad/config.yaml → codeentropy-2.1.1/tests/regression/configs/ethyl-acetate/rad.yaml +3 -3
  108. codeentropy-2.1.1/tests/regression/configs/ethyl-acetate/selection_subset.yaml +14 -0
  109. codeentropy-2.1.1/tests/regression/configs/methane/axes_off.yaml +16 -0
  110. codeentropy-2.1.1/tests/regression/configs/methane/combined_forcetorque_off.yaml +16 -0
  111. codeentropy-2.1.1/tests/regression/configs/methane/frame_window.yaml +15 -0
  112. codeentropy-2.1.1/tests/regression/configs/methane/grouping_each.yaml +16 -0
  113. codeentropy-2.1.0/tests/regression/configs/methane_rad/config.yaml → codeentropy-2.1.1/tests/regression/configs/methane/rad.yaml +2 -1
  114. codeentropy-2.1.1/tests/regression/configs/methane/selection_subset.yaml +15 -0
  115. codeentropy-2.1.1/tests/regression/configs/methanol/axes_off.yaml +15 -0
  116. codeentropy-2.1.1/tests/regression/configs/methanol/combined_forcetorque_off.yaml +15 -0
  117. codeentropy-2.1.0/tests/regression/configs/methanol/config.yaml → codeentropy-2.1.1/tests/regression/configs/methanol/default.yaml +2 -2
  118. codeentropy-2.1.1/tests/regression/configs/methanol/frame_window.yaml +14 -0
  119. codeentropy-2.1.1/tests/regression/configs/methanol/grouping_each.yaml +15 -0
  120. codeentropy-2.1.0/tests/regression/configs/methanol_rad/config.yaml → codeentropy-2.1.1/tests/regression/configs/methanol/rad.yaml +3 -3
  121. codeentropy-2.1.1/tests/regression/configs/methanol/selection_subset.yaml +14 -0
  122. codeentropy-2.1.1/tests/regression/configs/octonol/axes_off.yaml +15 -0
  123. codeentropy-2.1.1/tests/regression/configs/octonol/combined_forcetorque_off.yaml +15 -0
  124. codeentropy-2.1.0/tests/regression/configs/octonol/config.yaml → codeentropy-2.1.1/tests/regression/configs/octonol/default.yaml +2 -2
  125. codeentropy-2.1.1/tests/regression/configs/octonol/frame_window.yaml +14 -0
  126. codeentropy-2.1.1/tests/regression/configs/octonol/grouping_each.yaml +15 -0
  127. codeentropy-2.1.0/tests/regression/configs/octonol_rad/config.yaml → codeentropy-2.1.1/tests/regression/configs/octonol/rad.yaml +3 -3
  128. codeentropy-2.1.1/tests/regression/configs/octonol/selection_subset.yaml +14 -0
  129. codeentropy-2.1.1/tests/regression/configs/water/axes_off.yaml +15 -0
  130. codeentropy-2.1.1/tests/regression/configs/water/combined_forcetorque_off.yaml +15 -0
  131. codeentropy-2.1.1/tests/regression/configs/water/frame_window.yaml +14 -0
  132. codeentropy-2.1.1/tests/regression/configs/water/grouping_each.yaml +15 -0
  133. codeentropy-2.1.1/tests/regression/configs/water/selection_subset.yaml +14 -0
  134. codeentropy-2.1.1/tests/regression/configs/water/water_off.yaml +15 -0
  135. codeentropy-2.1.1/tests/regression/conftest.py +84 -0
  136. codeentropy-2.1.1/tests/regression/list_systems.py +12 -0
  137. codeentropy-2.1.1/tests/regression/test_regression.py +187 -0
  138. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/test_search.py +2 -2
  139. codeentropy-2.1.0/.github/workflows/weekly-regression.yaml +0 -51
  140. codeentropy-2.1.0/tests/__init__.py +0 -4
  141. codeentropy-2.1.0/tests/pytest.ini +0 -10
  142. codeentropy-2.1.0/tests/regression/baselines/benzaldehyde_rad.json +0 -45
  143. codeentropy-2.1.0/tests/regression/baselines/benzene_rad.json +0 -45
  144. codeentropy-2.1.0/tests/regression/baselines/cylcohexane_rad.json +0 -45
  145. codeentropy-2.1.0/tests/regression/baselines/ethyl-acetate_rad.json +0 -45
  146. codeentropy-2.1.0/tests/regression/baselines/methane_rad.json +0 -42
  147. codeentropy-2.1.0/tests/regression/baselines/methanol_rad.json +0 -45
  148. codeentropy-2.1.0/tests/regression/baselines/octonal_rad.json +0 -45
  149. codeentropy-2.1.0/tests/regression/conftest.py +0 -46
  150. codeentropy-2.1.0/tests/regression/test_regression.py +0 -155
  151. {codeentropy-2.1.0 → codeentropy-2.1.1}/.github/CONTRIBUTING.md +0 -0
  152. {codeentropy-2.1.0 → codeentropy-2.1.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  153. {codeentropy-2.1.0 → codeentropy-2.1.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  154. {codeentropy-2.1.0 → codeentropy-2.1.1}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
  155. {codeentropy-2.1.0 → codeentropy-2.1.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  156. {codeentropy-2.1.0 → codeentropy-2.1.1}/.github/ISSUE_TEMPLATE/general_report.md +0 -0
  157. {codeentropy-2.1.0 → codeentropy-2.1.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  158. {codeentropy-2.1.0 → codeentropy-2.1.1}/.github/renovate.json +0 -0
  159. {codeentropy-2.1.0 → codeentropy-2.1.1}/.github/workflows/release.yaml +0 -0
  160. {codeentropy-2.1.0 → codeentropy-2.1.1}/.github/workflows/update-copyright-years-in-license-file.yaml +0 -0
  161. {codeentropy-2.1.0 → codeentropy-2.1.1}/.github/workflows/weekly-docs.yaml +0 -0
  162. {codeentropy-2.1.0 → codeentropy-2.1.1}/.pre-commit-config.yaml +0 -0
  163. {codeentropy-2.1.0 → codeentropy-2.1.1}/CODE_OF_CONDUCT.md +0 -0
  164. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/__main__.py +0 -0
  165. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/cli.py +0 -0
  166. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/config/__init__.py +0 -0
  167. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/config/argparse.py +0 -0
  168. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/config/runtime.py +0 -0
  169. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/core/__init__.py +0 -0
  170. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/core/logging.py +0 -0
  171. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/entropy/__init__.py +0 -0
  172. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/entropy/configurational.py +0 -0
  173. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/entropy/graph.py +0 -0
  174. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/entropy/nodes/__init__.py +0 -0
  175. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/entropy/nodes/aggregate.py +0 -0
  176. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/entropy/nodes/configurational.py +0 -0
  177. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/entropy/nodes/orientational.py +0 -0
  178. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/entropy/nodes/vibrational.py +0 -0
  179. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/entropy/orientational.py +0 -0
  180. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/entropy/vibrational.py +0 -0
  181. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/entropy/water.py +0 -0
  182. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/entropy/workflow.py +0 -0
  183. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/__init__.py +0 -0
  184. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/axes.py +0 -0
  185. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/dihedrals.py +0 -0
  186. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/forces.py +0 -0
  187. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/frame_dag.py +0 -0
  188. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/hierarchy.py +0 -0
  189. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/level_dag.py +0 -0
  190. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/linalg.py +0 -0
  191. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/mda.py +0 -0
  192. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/neighbors.py +0 -0
  193. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/nodes/__init__.py +0 -0
  194. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/nodes/accumulators.py +0 -0
  195. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/nodes/beads.py +0 -0
  196. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/nodes/conformations.py +0 -0
  197. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/nodes/covariance.py +0 -0
  198. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/nodes/detect_levels.py +0 -0
  199. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/nodes/detect_molecules.py +0 -0
  200. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/nodes/find_neighbors.py +0 -0
  201. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/levels/search.py +0 -0
  202. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/molecules/__init__.py +0 -0
  203. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/molecules/grouping.py +0 -0
  204. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/results/__init__.py +0 -0
  205. {codeentropy-2.1.0 → codeentropy-2.1.1}/CodeEntropy/results/reporter.py +0 -0
  206. {codeentropy-2.1.0 → codeentropy-2.1.1}/LICENSE +0 -0
  207. {codeentropy-2.1.0 → codeentropy-2.1.1}/README.md +0 -0
  208. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/Makefile +0 -0
  209. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/README.md +0 -0
  210. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/_static/README.md +0 -0
  211. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/_static/custom.css +0 -0
  212. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/_static/logos/biosim-codeentropy_logo_dark.png +0 -0
  213. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/_static/logos/biosim-codeentropy_logo_light.png +0 -0
  214. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/_templates/README.md +0 -0
  215. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.cli.rst +0 -0
  216. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.config.argparse.rst +0 -0
  217. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.config.rst +0 -0
  218. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.config.runtime.rst +0 -0
  219. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.core.logging.rst +0 -0
  220. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.core.rst +0 -0
  221. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.entropy.configurational.rst +0 -0
  222. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.entropy.graph.rst +0 -0
  223. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.entropy.nodes.aggregate.rst +0 -0
  224. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.entropy.nodes.configurational.rst +0 -0
  225. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.entropy.nodes.rst +0 -0
  226. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.entropy.nodes.vibrational.rst +0 -0
  227. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.entropy.orientational.rst +0 -0
  228. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.entropy.rst +0 -0
  229. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.entropy.vibrational.rst +0 -0
  230. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.entropy.water.rst +0 -0
  231. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.entropy.workflow.rst +0 -0
  232. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.levels.axes.rst +0 -0
  233. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.levels.dihedrals.rst +0 -0
  234. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.levels.forces.rst +0 -0
  235. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.levels.frame_dag.rst +0 -0
  236. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.levels.hierarchy.rst +0 -0
  237. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.levels.level_dag.rst +0 -0
  238. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.levels.linalg.rst +0 -0
  239. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.levels.mda.rst +0 -0
  240. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.levels.nodes.accumulators.rst +0 -0
  241. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.levels.nodes.beads.rst +0 -0
  242. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.levels.nodes.conformations.rst +0 -0
  243. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.levels.nodes.covariance.rst +0 -0
  244. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.levels.nodes.detect_levels.rst +0 -0
  245. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.levels.nodes.detect_molecules.rst +0 -0
  246. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.levels.nodes.rst +0 -0
  247. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.levels.rst +0 -0
  248. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.molecules.grouping.rst +0 -0
  249. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.molecules.rst +0 -0
  250. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.results.reporter.rst +0 -0
  251. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.results.rst +0 -0
  252. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/CodeEntropy.rst +0 -0
  253. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/api/modules.rst +0 -0
  254. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/conf.py +0 -0
  255. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/config.yaml +0 -0
  256. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/faq.rst +0 -0
  257. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/getting_started.rst +0 -0
  258. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/index.rst +0 -0
  259. {codeentropy-2.1.0 → codeentropy-2.1.1}/docs/science.rst +0 -0
  260. {codeentropy-2.1.0 → codeentropy-2.1.1}/readthedocs.yml +0 -0
  261. /codeentropy-2.1.0/tests/regression/configs/benzaldehyde/config.yaml → /codeentropy-2.1.1/tests/regression/configs/benzaldehyde/default.yaml +0 -0
  262. /codeentropy-2.1.0/tests/regression/configs/methane/config.yaml → /codeentropy-2.1.1/tests/regression/configs/methane/default.yaml +0 -0
  263. /codeentropy-2.1.0/tests/regression/configs/water/config.yaml → /codeentropy-2.1.1/tests/regression/configs/water/default.yaml +0 -0
  264. /codeentropy-2.1.0/tests/regression/configs/water_rad/config.yaml → /codeentropy-2.1.1/tests/regression/configs/water/rad.yaml +0 -0
  265. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/regression/helpers.py +0 -0
  266. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/cli/test___main__.py +0 -0
  267. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/cli/test_cli.py +0 -0
  268. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/argparse/conftest.py +0 -0
  269. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/argparse/test_argparse_build_parser.py +0 -0
  270. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/argparse/test_argparse_load_config.py +0 -0
  271. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/argparse/test_argparse_resolve.py +0 -0
  272. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/argparse/test_argparse_str2bool.py +0 -0
  273. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/argparse/test_argparse_validate_inputs.py +0 -0
  274. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/runtime/conftest.py +0 -0
  275. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/runtime/test_build_universe_branches.py +0 -0
  276. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/runtime/test_citation_data.py +0 -0
  277. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/runtime/test_create_job_folder.py +0 -0
  278. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/runtime/test_print_args_table.py +0 -0
  279. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/runtime/test_required_args.py +0 -0
  280. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/runtime/test_run_entropy_workflow_branches.py +0 -0
  281. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/runtime/test_runtime_properties.py +0 -0
  282. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/runtime/test_show_splash.py +0 -0
  283. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/runtime/test_unit_conversions.py +0 -0
  284. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/config/runtime/test_universe_io.py +0 -0
  285. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/core/logging/conftest.py +0 -0
  286. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/core/logging/test_configure_loggers.py +0 -0
  287. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/core/logging/test_error_filter.py +0 -0
  288. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/core/logging/test_export_console.py +0 -0
  289. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/core/logging/test_get_console_singleton.py +0 -0
  290. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/core/logging/test_handlers_setup.py +0 -0
  291. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/core/logging/test_set_level.py +0 -0
  292. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/entropy/conftest.py +0 -0
  293. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/entropy/nodes/test_aggregate_node.py +0 -0
  294. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/entropy/nodes/test_configurational_node.py +0 -0
  295. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/entropy/nodes/test_orientational_node.py +0 -0
  296. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/entropy/nodes/test_vibrational_node.py +0 -0
  297. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/entropy/test_configurational_edges.py +0 -0
  298. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/entropy/test_configurational_entropy_math.py +0 -0
  299. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/entropy/test_graph.py +0 -0
  300. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/entropy/test_orientational_entropy.py +0 -0
  301. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/entropy/test_vibrational_entropy_math.py +0 -0
  302. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/entropy/test_water_entropy.py +0 -0
  303. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/entropy/test_workflow.py +0 -0
  304. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/conftest.py +0 -0
  305. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/nodes/test_build_beads_node.py +0 -0
  306. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/nodes/test_conformations_node.py +0 -0
  307. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/nodes/test_detect_levels_node.py +0 -0
  308. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/nodes/test_detect_molecules_node.py +0 -0
  309. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/nodes/test_find_neighbors.py +0 -0
  310. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/nodes/test_frame_covariance_node.py +0 -0
  311. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/nodes/test_init_covariance_accumulators_node.py +0 -0
  312. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/test_axes.py +0 -0
  313. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/test_dihedrals.py +0 -0
  314. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/test_forces_force_torque_calculator.py +0 -0
  315. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/test_frame_graph.py +0 -0
  316. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/test_hierarchy_builder.py +0 -0
  317. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/test_level_dag_orchestration.py +0 -0
  318. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/test_level_dag_reduce.py +0 -0
  319. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/test_level_dag_reduction.py +0 -0
  320. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/test_linalg_matrix_utils.py +0 -0
  321. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/test_mda_universe_operations.py +0 -0
  322. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/levels/test_neighbors.py +0 -0
  323. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/molecules/test_grouping.py +0 -0
  324. {codeentropy-2.1.0 → codeentropy-2.1.1}/tests/unit/CodeEntropy/results/test_reporter.py +0 -0
@@ -11,14 +11,16 @@ concurrency:
11
11
 
12
12
  jobs:
13
13
  unit:
14
- name: Unit (${{ matrix.os }}, ${{ matrix.python-version }})
14
+ name: Unit (${{ matrix.os }}, py${{ matrix.python-version }})
15
15
  runs-on: ${{ matrix.os }}
16
16
  timeout-minutes: 30
17
+
17
18
  strategy:
18
19
  fail-fast: false
19
20
  matrix:
20
21
  os: [ubuntu-24.04, macos-15, windows-2025]
21
22
  python-version: ["3.12", "3.13", "3.14"]
23
+
22
24
  steps:
23
25
  - name: Checkout
24
26
  uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
@@ -29,10 +31,10 @@ jobs:
29
31
  python-version: ${{ matrix.python-version }}
30
32
  cache: pip
31
33
 
32
- - name: Install (testing)
34
+ - name: Install testing dependencies
33
35
  run: |
34
36
  python -m pip install --upgrade pip
35
37
  python -m pip install -e .[testing]
36
38
 
37
- - name: Pytest (unit) • ${{ matrix.os }} • py${{ matrix.python-version }}
39
+ - name: Run unit tests
38
40
  run: python -m pytest tests/unit
@@ -17,12 +17,13 @@ jobs:
17
17
  matrix:
18
18
  os: [ubuntu-24.04, macos-15, windows-2025]
19
19
  python-version: ["3.12", "3.13", "3.14"]
20
+
20
21
  steps:
21
22
  - name: Checkout
22
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
23
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
23
24
 
24
25
  - name: Set up Python ${{ matrix.python-version }}
25
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
26
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
26
27
  with:
27
28
  python-version: ${{ matrix.python-version }}
28
29
  cache: pip
@@ -35,17 +36,50 @@ jobs:
35
36
  - name: Pytest (unit) • ${{ matrix.os }}, ${{ matrix.python-version }}
36
37
  run: python -m pytest tests/unit
37
38
 
39
+ discover-systems:
40
+ name: Discover regression systems
41
+ runs-on: ubuntu-24.04
42
+ outputs:
43
+ systems: ${{ steps.set-systems.outputs.systems }}
44
+
45
+ steps:
46
+ - name: Checkout
47
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
48
+
49
+ - name: Set up Python 3.14
50
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
51
+ with:
52
+ python-version: "3.14"
53
+ cache: pip
54
+
55
+ - name: Install testing dependencies
56
+ run: |
57
+ python -m pip install --upgrade pip
58
+ python -m pip install -e .[testing]
59
+
60
+ - name: Discover systems
61
+ id: set-systems
62
+ run: |
63
+ SYSTEMS=$(python -m tests.regression.list_systems)
64
+ echo "systems=$SYSTEMS" >> $GITHUB_OUTPUT
65
+
38
66
  regression-quick:
39
- name: Regression (quick)
40
- needs: unit
67
+ name: Regression (fast) • ${{ matrix.system }}
68
+ needs: [unit, discover-systems]
41
69
  runs-on: ubuntu-24.04
42
70
  timeout-minutes: 35
71
+
72
+ strategy:
73
+ fail-fast: false
74
+ matrix:
75
+ system: ${{ fromJson(needs.discover-systems.outputs.systems) }}
76
+
43
77
  steps:
44
78
  - name: Checkout
45
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
79
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
46
80
 
47
81
  - name: Set up Python 3.14
48
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
82
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
49
83
  with:
50
84
  python-version: "3.14"
51
85
  cache: pip
@@ -54,28 +88,31 @@ jobs:
54
88
  uses: actions/cache@v4
55
89
  with:
56
90
  path: .testdata
57
- key: codeentropy-testdata-v1-${{ runner.os }}-py3.14
91
+ key: codeentropy-testdata-${{ runner.os }}-py314
58
92
 
59
- - name: Install (testing)
93
+ - name: Install testing dependencies
60
94
  run: |
61
95
  python -m pip install --upgrade pip
62
96
  python -m pip install -e .[testing]
63
97
 
64
- - name: Pytest (regression quick)
65
- run: python -m pytest tests/regression
98
+ - name: Run fast regression tests (per system)
99
+ run: |
100
+ python -m pytest tests/regression \
101
+ -m "not slow" \
102
+ -n auto \
103
+ --dist=loadscope \
104
+ -k "${{ matrix.system }}" \
105
+ -vv \
106
+ --durations=20
66
107
 
67
108
  - name: Upload artifacts (failure)
68
109
  if: failure()
69
110
  uses: actions/upload-artifact@v4
70
111
  with:
71
- name: quick-regression-failure
112
+ name: quick-regression-failure-${{ matrix.system }}
72
113
  path: |
73
114
  .testdata/**
74
- tests/regression/**/.pytest_cache/**
75
- /tmp/pytest-of-*/pytest-*/**/config.yaml
76
- /tmp/pytest-of-*/pytest-*/**/codeentropy_stdout.txt
77
- /tmp/pytest-of-*/pytest-*/**/codeentropy_stderr.txt
78
- /tmp/pytest-of-*/pytest-*/**/codeentropy_output.json
115
+ /tmp/pytest-of-*/pytest-*/**
79
116
 
80
117
  docs:
81
118
  name: Docs
@@ -93,7 +130,7 @@ jobs:
93
130
  python-version: "3.14"
94
131
  cache: pip
95
132
 
96
- - name: Install
133
+ - name: Install docs dependencies
97
134
  run: |
98
135
  python -m pip install --upgrade pip
99
136
  python -m pip install -e .[docs]
@@ -114,23 +151,23 @@ jobs:
114
151
  name: Pre-commit
115
152
  runs-on: ubuntu-24.04
116
153
  timeout-minutes: 15
154
+
117
155
  steps:
118
156
  - name: Checkout
119
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
157
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
120
158
 
121
159
  - name: Set up Python 3.14
122
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
160
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
123
161
  with:
124
162
  python-version: "3.14"
125
163
  cache: pip
126
164
 
127
- - name: Install (pre-commit)
165
+ - name: Install pre-commit dependencies
128
166
  run: |
129
167
  python -m pip install --upgrade pip
130
168
  python -m pip install -e .[pre-commit]
131
169
 
132
170
  - name: Run pre-commit
133
- shell: bash
134
171
  run: |
135
172
  pre-commit install
136
173
  pre-commit run --all-files || {
@@ -144,8 +181,9 @@ jobs:
144
181
  needs: unit
145
182
  runs-on: ubuntu-24.04
146
183
  timeout-minutes: 30
184
+
147
185
  steps:
148
- - name: Checkout repo
186
+ - name: Checkout
149
187
  uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
150
188
 
151
189
  - name: Set up Python 3.14
@@ -154,12 +192,12 @@ jobs:
154
192
  python-version: "3.14"
155
193
  cache: pip
156
194
 
157
- - name: Install (testing)
195
+ - name: Install testing dependencies
158
196
  run: |
159
197
  python -m pip install --upgrade pip
160
198
  python -m pip install -e .[testing]
161
199
 
162
- - name: Run unit test suite with coverage
200
+ - name: Run coverage
163
201
  run: |
164
202
  pytest tests/unit \
165
203
  --cov CodeEntropy \
@@ -167,7 +205,7 @@ jobs:
167
205
  --cov-report xml \
168
206
  -q
169
207
 
170
- - name: Upload to Coveralls
208
+ - name: Upload coverage to Coveralls
171
209
  uses: coverallsapp/github-action@5cbfd81b66ca5d10c19b062c04de0199c215fb6e
172
210
  with:
173
211
  github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,90 @@
1
+ name: Weekly Regression Tests
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '0 8 * * 1'
6
+ workflow_dispatch:
7
+
8
+ concurrency:
9
+ group: weekly-regression-${{ github.ref }}
10
+ cancel-in-progress: true
11
+
12
+ jobs:
13
+ discover:
14
+ name: Discover regression systems
15
+ runs-on: ubuntu-24.04
16
+
17
+ outputs:
18
+ systems: ${{ steps.set.outputs.systems }}
19
+
20
+ steps:
21
+ - name: Checkout
22
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
23
+
24
+ - name: Set up Python 3.14
25
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
26
+ with:
27
+ python-version: "3.14"
28
+ cache: pip
29
+
30
+ - name: Install testing dependencies
31
+ run: |
32
+ python -m pip install --upgrade pip
33
+ python -m pip install -e .[testing]
34
+
35
+ - name: Generate system matrix
36
+ id: set
37
+ run: |
38
+ systems=$(python -m tests.regression.list_systems)
39
+ echo "systems=$systems" >> $GITHUB_OUTPUT
40
+
41
+ regression:
42
+ name: Regression (${{ matrix.system }})
43
+ needs: discover
44
+ runs-on: ubuntu-24.04
45
+ timeout-minutes: 360
46
+
47
+ strategy:
48
+ fail-fast: false
49
+ matrix:
50
+ system: ${{ fromJson(needs.discover.outputs.systems) }}
51
+
52
+ steps:
53
+ - name: Checkout
54
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
55
+
56
+ - name: Set up Python 3.14
57
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
58
+ with:
59
+ python-version: "3.14"
60
+ cache: pip
61
+
62
+ - name: Cache regression test data
63
+ uses: actions/cache@v4
64
+ with:
65
+ path: .testdata
66
+ key: codeentropy-testdata-${{ runner.os }}-py314
67
+
68
+ - name: Install testing dependencies
69
+ run: |
70
+ python -m pip install --upgrade pip
71
+ python -m pip install -e .[testing]
72
+
73
+ - name: Run regression tests (slow, per system)
74
+ run: |
75
+ pytest tests/regression \
76
+ -k "${{ matrix.system }}" \
77
+ --run-slow \
78
+ -n auto \
79
+ --dist=loadscope \
80
+ -vv \
81
+ --durations=20
82
+
83
+ - name: Upload regression artifacts (failure)
84
+ if: failure()
85
+ uses: actions/upload-artifact@v4
86
+ with:
87
+ name: regression-${{ matrix.system }}-artifacts
88
+ path: |
89
+ .testdata/**
90
+ /tmp/pytest-of-*/pytest-*/**
@@ -129,4 +129,4 @@ job*
129
129
  .testdata/
130
130
 
131
131
  !tests/regression/baselines/
132
- !tests/regression/baselines/*.json
132
+ !tests/regression/baselines/*/*.json
@@ -76,5 +76,5 @@ keywords:
76
76
  - biomolecular simulations
77
77
  - protein flexibility
78
78
  license: MIT
79
- version: 2.1.0
80
- date-released: '2026-03-26'
79
+ version: 2.1.1
80
+ date-released: '2026-04-01'
@@ -8,4 +8,4 @@ entropy estimates, supporting a wide range of applications in molecular simulati
8
8
  and statistical mechanics.
9
9
  """
10
10
 
11
- __version__ = "2.1.0"
11
+ __version__ = "2.1.1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CodeEntropy
3
- Version: 2.1.0
3
+ Version: 2.1.1
4
4
  Summary: CodeEntropy is a Python package for computing the configurational entropy of macromolecular systems using forces sampled from molecular dynamics (MD) simulations. It implements the multiscale cell correlation method to provide accurate and efficient entropy estimates, supporting a wide range of applications in molecular simulation and statistical mechanics.
5
5
  Keywords: entropy,macromolecular systems,MD simulation
6
6
  Author-email: Arghya 'Argo' Chakravorty <arghyac@umich.edu>, Donald Chung-HK <donald.chung@stfc.ac.uk>, Sarah Fegan <sarah.fegan@stfc.ac.uk>, James Gebbie-Rayet <james.gebbie@stfc.ac.uk>, Sarah Harris <sarah.harris@sheffield.ac.uk>, Richard Henchman <rhen7213@uni.sydney.edu.au>, Jonathan Higham <j.higham4@lancaster.ac.uk>, Jas Kalayan <jas.kalayan@stfc.ac.uk>, Ioana Papa <iapapa1@sheffield.ac.uk>
@@ -44,6 +44,7 @@ Requires-Dist: rstcheck>=6.2,<7.0 ; extra == "pre-commit"
44
44
  Requires-Dist: pytest>=9.0,<10.0 ; extra == "testing"
45
45
  Requires-Dist: pytest-cov>=7.0,<8.0 ; extra == "testing"
46
46
  Requires-Dist: pytest-sugar>=1.1,<2.0 ; extra == "testing"
47
+ Requires-Dist: pytest-xdist ; extra == "testing"
47
48
  Project-URL: Documentation, https://codeentropy.readthedocs.io
48
49
  Project-URL: Homepage, https://ccpbiosim.github.io/CodeEntropy/
49
50
  Project-URL: Repository, https://github.com/CCPBioSim/CodeEntropy
@@ -38,6 +38,7 @@ requirements:
38
38
  - dask >=2026.1.2,<2026.2.0
39
39
  - distributed >=2026.1.2,<2026.2.0
40
40
  - dask-jobqueue >=0.9,<0.10
41
+ - pytest-xdist >=3.8, <3.9
41
42
 
42
43
  test:
43
44
  imports:
@@ -54,7 +54,7 @@ Run regression tests excluding slow systems::
54
54
 
55
55
  Run slow regression tests::
56
56
 
57
- pytest tests/regression -m slow
57
+ pytest tests/regression --run-slow
58
58
 
59
59
  Run tests with coverage::
60
60
 
@@ -61,7 +61,8 @@ Documentation = "https://codeentropy.readthedocs.io"
61
61
  testing = [
62
62
  "pytest>=9.0,<10.0",
63
63
  "pytest-cov>=7.0,<8.0",
64
- "pytest-sugar>=1.1,<2.0"
64
+ "pytest-sugar>=1.1,<2.0",
65
+ "pytest-xdist"
65
66
  ]
66
67
  pre-commit = [
67
68
  "pre-commit>=4.5,<5.0",
@@ -83,6 +84,16 @@ docs = [
83
84
  [project.scripts]
84
85
  CodeEntropy = "CodeEntropy.cli:main"
85
86
 
87
+ [tool.pytest.ini_options]
88
+ testpaths = ["tests"]
89
+
90
+ addopts = "-n auto -vv -ra"
91
+
92
+ markers = [
93
+ "regression: end-to-end regression tests against baselines",
94
+ "slow: long-running regression tests (20-30+ minutes)",
95
+ ]
96
+
86
97
  [tool.ruff]
87
98
  line-length = 88
88
99
  target-version = "py311"
@@ -0,0 +1 @@
1
+ """ """
@@ -0,0 +1,45 @@
1
+ {
2
+ "args": {
3
+ "top_traj_file": [
4
+ "/home/harry-swift/BioSim/software/CodeEntropy/.testdata/benzaldehyde/molecules.top",
5
+ "/home/harry-swift/BioSim/software/CodeEntropy/.testdata/benzaldehyde/trajectory.crd"
6
+ ],
7
+ "force_file": "/home/harry-swift/BioSim/software/CodeEntropy/.testdata/benzaldehyde/forces.frc",
8
+ "file_format": "MDCRD",
9
+ "kcal_force_units": true,
10
+ "selection_string": "resid 1:10",
11
+ "start": 0,
12
+ "end": 1,
13
+ "step": 1,
14
+ "bin_width": 30,
15
+ "temperature": 298.0,
16
+ "verbose": false,
17
+ "output_file": "/tmp/pytest-of-harry-swift/pytest-53/test_regression_matches_baseli0/job001/output_file.json",
18
+ "force_partitioning": 0.5,
19
+ "water_entropy": true,
20
+ "grouping": "molecules",
21
+ "combined_forcetorque": true,
22
+ "customised_axes": false,
23
+ "search_type": "grid"
24
+ },
25
+ "provenance": {
26
+ "python": "3.14.3",
27
+ "platform": "Linux-6.17.0-19-generic-x86_64-with-glibc2.39",
28
+ "codeentropy_version": "2.1.0",
29
+ "git_sha": "be46d826f4ae38e3c6e62a7d5bcddeca85e31590"
30
+ },
31
+ "groups": {
32
+ "0": {
33
+ "components": {
34
+ "united_atom:Transvibrational": 0.08982962903796131,
35
+ "united_atom:Rovibrational": 32.16018134884085,
36
+ "residue:FTmat-Transvibrational": 88.7671666695003,
37
+ "residue:FTmat-Rovibrational": 61.61036267672132,
38
+ "united_atom:Conformational": 0.0,
39
+ "residue:Conformational": 0.0,
40
+ "residue:Orientational": 7.791711490122748
41
+ },
42
+ "total": 190.41925181422317
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "args": {
3
+ "top_traj_file": [
4
+ "/home/harry-swift/BioSim/software/CodeEntropy/.testdata/benzaldehyde/molecules.top",
5
+ "/home/harry-swift/BioSim/software/CodeEntropy/.testdata/benzaldehyde/trajectory.crd"
6
+ ],
7
+ "force_file": "/home/harry-swift/BioSim/software/CodeEntropy/.testdata/benzaldehyde/forces.frc",
8
+ "file_format": "MDCRD",
9
+ "kcal_force_units": true,
10
+ "selection_string": "resid 1:10",
11
+ "start": 0,
12
+ "end": 1,
13
+ "step": 1,
14
+ "bin_width": 30,
15
+ "temperature": 298.0,
16
+ "verbose": false,
17
+ "output_file": "/tmp/pytest-of-harry-swift/pytest-53/test_regression_matches_baseli1/job001/output_file.json",
18
+ "force_partitioning": 0.5,
19
+ "water_entropy": true,
20
+ "grouping": "molecules",
21
+ "combined_forcetorque": false,
22
+ "customised_axes": true,
23
+ "search_type": "grid"
24
+ },
25
+ "provenance": {
26
+ "python": "3.14.3",
27
+ "platform": "Linux-6.17.0-19-generic-x86_64-with-glibc2.39",
28
+ "codeentropy_version": "2.1.0",
29
+ "git_sha": "be46d826f4ae38e3c6e62a7d5bcddeca85e31590"
30
+ },
31
+ "groups": {
32
+ "0": {
33
+ "components": {
34
+ "united_atom:Transvibrational": 0.07119323721997475,
35
+ "united_atom:Rovibrational": 49.68669738152346,
36
+ "residue:Transvibrational": 69.48692941204929,
37
+ "residue:Rovibrational": 68.46147102540942,
38
+ "united_atom:Conformational": 0.0,
39
+ "residue:Conformational": 0.0,
40
+ "residue:Orientational": 7.791711490122748
41
+ },
42
+ "total": 195.49800254632487
43
+ }
44
+ }
45
+ }
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "args": {
3
3
  "top_traj_file": [
4
- "/home/ogo12949/CodeEntropy/.testdata/benzaldehyde/molecules.top",
5
- "/home/ogo12949/CodeEntropy/.testdata/benzaldehyde/trajectory.crd"
4
+ "/home/harry-swift/BioSim/software/CodeEntropy/.testdata/benzaldehyde/molecules.top",
5
+ "/home/harry-swift/BioSim/software/CodeEntropy/.testdata/benzaldehyde/trajectory.crd"
6
6
  ],
7
- "force_file": "/home/ogo12949/CodeEntropy/.testdata/benzaldehyde/forces.frc",
7
+ "force_file": "/home/harry-swift/BioSim/software/CodeEntropy/.testdata/benzaldehyde/forces.frc",
8
8
  "file_format": "MDCRD",
9
9
  "kcal_force_units": true,
10
10
  "selection_string": "all",
@@ -14,7 +14,7 @@
14
14
  "bin_width": 30,
15
15
  "temperature": 298.0,
16
16
  "verbose": false,
17
- "output_file": "/tmp/pytest-of-ogo12949/pytest-5/test_regression_matches_baseli1/job001/output_file.json",
17
+ "output_file": "/tmp/pytest-of-harry-swift/pytest-53/test_regression_matches_baseli2/job001/output_file.json",
18
18
  "force_partitioning": 0.5,
19
19
  "water_entropy": true,
20
20
  "grouping": "molecules",
@@ -23,10 +23,10 @@
23
23
  "search_type": "grid"
24
24
  },
25
25
  "provenance": {
26
- "python": "3.13.5",
27
- "platform": "Linux-6.17.0-1012-oem-x86_64-with-glibc2.39",
28
- "codeentropy_version": "2.0.0",
29
- "git_sha": "697cc5da0af766f2f69b0fa31254f2ce7b2b1141"
26
+ "python": "3.14.3",
27
+ "platform": "Linux-6.17.0-19-generic-x86_64-with-glibc2.39",
28
+ "codeentropy_version": "2.1.0",
29
+ "git_sha": "be46d826f4ae38e3c6e62a7d5bcddeca85e31590"
30
30
  },
31
31
  "groups": {
32
32
  "0": {
@@ -0,0 +1,45 @@
1
+ {
2
+ "args": {
3
+ "top_traj_file": [
4
+ "/home/harry-swift/BioSim/software/CodeEntropy/.testdata/benzaldehyde/molecules.top",
5
+ "/home/harry-swift/BioSim/software/CodeEntropy/.testdata/benzaldehyde/trajectory.crd"
6
+ ],
7
+ "force_file": "/home/harry-swift/BioSim/software/CodeEntropy/.testdata/benzaldehyde/forces.frc",
8
+ "file_format": "MDCRD",
9
+ "kcal_force_units": true,
10
+ "selection_string": "resid 1:10",
11
+ "start": 0,
12
+ "end": 5,
13
+ "step": 2,
14
+ "bin_width": 30,
15
+ "temperature": 298.0,
16
+ "verbose": false,
17
+ "output_file": "/tmp/pytest-of-harry-swift/pytest-53/test_regression_matches_baseli3/job001/output_file.json",
18
+ "force_partitioning": 0.5,
19
+ "water_entropy": true,
20
+ "grouping": "molecules",
21
+ "combined_forcetorque": true,
22
+ "customised_axes": true,
23
+ "search_type": "grid"
24
+ },
25
+ "provenance": {
26
+ "python": "3.14.3",
27
+ "platform": "Linux-6.17.0-19-generic-x86_64-with-glibc2.39",
28
+ "codeentropy_version": "2.1.0",
29
+ "git_sha": "be46d826f4ae38e3c6e62a7d5bcddeca85e31590"
30
+ },
31
+ "groups": {
32
+ "0": {
33
+ "components": {
34
+ "united_atom:Transvibrational": 40.30267601961045,
35
+ "united_atom:Rovibrational": 38.21906858443615,
36
+ "residue:FTmat-Transvibrational": 73.41098578352612,
37
+ "residue:FTmat-Rovibrational": 57.881504393660364,
38
+ "united_atom:Conformational": 0.0,
39
+ "residue:Conformational": 0.0,
40
+ "residue:Orientational": 7.791711490122748
41
+ },
42
+ "total": 217.60594627135583
43
+ }
44
+ }
45
+ }