CodeEntropy 2.4.3__tar.gz → 2.6.0__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 (390) hide show
  1. codeentropy-2.6.0/.github/renovate.json +33 -0
  2. {codeentropy-2.4.3 → codeentropy-2.6.0}/.github/workflows/coveralls-main.yaml +2 -2
  3. {codeentropy-2.4.3 → codeentropy-2.6.0}/.github/workflows/daily.yaml +1 -1
  4. codeentropy-2.6.0/.github/workflows/dependency-floors.yaml +50 -0
  5. {codeentropy-2.4.3 → codeentropy-2.6.0}/.github/workflows/pr.yaml +25 -12
  6. {codeentropy-2.4.3 → codeentropy-2.6.0}/.github/workflows/release.yaml +17 -17
  7. {codeentropy-2.4.3 → codeentropy-2.6.0}/.github/workflows/update-copyright-years-in-license-file.yaml +2 -2
  8. {codeentropy-2.4.3 → codeentropy-2.6.0}/.github/workflows/update_regression_baselines.yaml +4 -4
  9. {codeentropy-2.4.3 → codeentropy-2.6.0}/.github/workflows/weekly-docs.yaml +2 -2
  10. {codeentropy-2.4.3 → codeentropy-2.6.0}/.github/workflows/weekly-regression.yaml +5 -5
  11. {codeentropy-2.4.3 → codeentropy-2.6.0}/CITATION.cff +2 -2
  12. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/__init__.py +1 -1
  13. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/cli.py +12 -4
  14. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/config/argparse.py +6 -0
  15. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/config/runtime.py +9 -7
  16. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/entropy/vibrational.py +9 -3
  17. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/axes.py +261 -157
  18. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/dihedrals/conformational_state_builder.py +15 -5
  19. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/dihedrals/state_assignment.py +9 -6
  20. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/nodes/covariance.py +6 -6
  21. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/trajectory/mda.py +28 -1
  22. {codeentropy-2.4.3 → codeentropy-2.6.0}/PKG-INFO +22 -27
  23. {codeentropy-2.4.3 → codeentropy-2.6.0}/README.md +1 -1
  24. {codeentropy-2.4.3 → codeentropy-2.6.0}/conda-recipe/meta.yaml +16 -18
  25. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/developer_guide.rst +21 -0
  26. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/getting_started.rst +1 -1
  27. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/science.rst +4 -2
  28. {codeentropy-2.4.3 → codeentropy-2.6.0}/pyproject.toml +20 -25
  29. codeentropy-2.6.0/tests/regression/baselines/benzaldehyde/axes_off.json +16 -0
  30. codeentropy-2.6.0/tests/regression/baselines/benzaldehyde/combined_forcetorque_false.json +16 -0
  31. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/benzaldehyde/default.json +4 -4
  32. codeentropy-2.6.0/tests/regression/baselines/benzaldehyde/frame_window.json +16 -0
  33. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/benzaldehyde/grouping_each.json +18 -18
  34. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/benzaldehyde/rad.json +4 -4
  35. codeentropy-2.6.0/tests/regression/baselines/benzaldehyde/selection_subset.json +16 -0
  36. codeentropy-2.6.0/tests/regression/baselines/benzene/axes_off.json +16 -0
  37. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/benzene/combined_forcetorque_off.json +4 -4
  38. codeentropy-2.6.0/tests/regression/baselines/benzene/default.json +16 -0
  39. codeentropy-2.6.0/tests/regression/baselines/benzene/frame_window.json +16 -0
  40. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/benzene/grouping_each.json +22 -22
  41. codeentropy-2.6.0/tests/regression/baselines/benzene/rad.json +16 -0
  42. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/benzene/selection_subset.json +4 -4
  43. codeentropy-2.6.0/tests/regression/baselines/cyclohexane/axes_off.json +16 -0
  44. codeentropy-2.6.0/tests/regression/baselines/cyclohexane/combined_forcetorque_off.json +16 -0
  45. codeentropy-2.6.0/tests/regression/baselines/cyclohexane/default.json +16 -0
  46. codeentropy-2.6.0/tests/regression/baselines/cyclohexane/frame_window.json +16 -0
  47. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/cyclohexane/grouping_each.json +18 -18
  48. codeentropy-2.6.0/tests/regression/baselines/cyclohexane/rad.json +16 -0
  49. codeentropy-2.6.0/tests/regression/baselines/cyclohexane/selection_subset.json +16 -0
  50. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/dna/axes_off.json +9 -9
  51. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/dna/combined_forcetorque_off.json +8 -8
  52. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/dna/default.json +7 -7
  53. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/dna/frame_window.json +8 -8
  54. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/dna/grouping_each.json +7 -7
  55. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/dna/selection_subset.json +7 -7
  56. codeentropy-2.6.0/tests/regression/baselines/ethyl-acetate/axes_off.json +16 -0
  57. codeentropy-2.6.0/tests/regression/baselines/ethyl-acetate/combined_forcetorque_off.json +16 -0
  58. codeentropy-2.6.0/tests/regression/baselines/ethyl-acetate/default.json +16 -0
  59. codeentropy-2.6.0/tests/regression/baselines/ethyl-acetate/frame_window.json +16 -0
  60. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/ethyl-acetate/grouping_each.json +21 -21
  61. codeentropy-2.6.0/tests/regression/baselines/ethyl-acetate/rad.json +16 -0
  62. codeentropy-2.6.0/tests/regression/baselines/ethyl-acetate/selection_subset.json +16 -0
  63. {codeentropy-2.4.3/tests/regression/baselines/water → codeentropy-2.6.0/tests/regression/baselines/methane}/axes_off.json +3 -3
  64. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/methane/combined_forcetorque_off.json +3 -3
  65. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/methane/default.json +3 -3
  66. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/methane/frame_window.json +3 -3
  67. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/methane/grouping_each.json +25 -25
  68. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/methane/rad.json +3 -3
  69. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/methane/selection_subset.json +3 -3
  70. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/methanol/axes_off.json +4 -4
  71. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/methanol/combined_forcetorque_off.json +4 -4
  72. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/methanol/default.json +4 -4
  73. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/methanol/frame_window.json +3 -3
  74. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/methanol/grouping_each.json +27 -27
  75. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/methanol/rad.json +4 -4
  76. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/methanol/selection_subset.json +4 -4
  77. codeentropy-2.6.0/tests/regression/baselines/octonol/axes_off.json +16 -0
  78. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/octonol/combined_forcetorque_off.json +4 -4
  79. codeentropy-2.6.0/tests/regression/baselines/octonol/default.json +16 -0
  80. codeentropy-2.6.0/tests/regression/baselines/octonol/frame_window.json +16 -0
  81. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/octonol/grouping_each.json +24 -24
  82. codeentropy-2.6.0/tests/regression/baselines/octonol/rad.json +16 -0
  83. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/octonol/selection_subset.json +4 -4
  84. {codeentropy-2.4.3/tests/regression/baselines/methane → codeentropy-2.6.0/tests/regression/baselines/water}/axes_off.json +3 -3
  85. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/water/combined_forcetorque_off.json +3 -3
  86. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/water/default.json +3 -3
  87. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/water/frame_window.json +3 -3
  88. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/water/grouping_each.json +23 -23
  89. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/water/rad.json +3 -3
  90. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/water/selection_subset.json +3 -3
  91. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/baselines/water/water_off.json +3 -3
  92. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/cli/test_cli.py +14 -0
  93. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/argparse/test_argparse_build_parser.py +13 -0
  94. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/runtime/test_show_splash.py +8 -3
  95. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/entropy/test_vibrational_entropy_math.py +7 -3
  96. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/dihedrals/test_conformational_state_builder.py +6 -6
  97. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/dihedrals/test_state_assignment.py +5 -4
  98. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/nodes/test_covariance_node.py +10 -7
  99. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/test_axes.py +695 -158
  100. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/test_mda_universe_operations.py +36 -0
  101. codeentropy-2.4.3/.github/renovate.json +0 -21
  102. codeentropy-2.4.3/tests/regression/baselines/benzaldehyde/axes_off.json +0 -16
  103. codeentropy-2.4.3/tests/regression/baselines/benzaldehyde/combined_forcetorque_false.json +0 -16
  104. codeentropy-2.4.3/tests/regression/baselines/benzaldehyde/frame_window.json +0 -16
  105. codeentropy-2.4.3/tests/regression/baselines/benzaldehyde/selection_subset.json +0 -16
  106. codeentropy-2.4.3/tests/regression/baselines/benzene/axes_off.json +0 -16
  107. codeentropy-2.4.3/tests/regression/baselines/benzene/default.json +0 -16
  108. codeentropy-2.4.3/tests/regression/baselines/benzene/frame_window.json +0 -16
  109. codeentropy-2.4.3/tests/regression/baselines/benzene/rad.json +0 -16
  110. codeentropy-2.4.3/tests/regression/baselines/cyclohexane/axes_off.json +0 -16
  111. codeentropy-2.4.3/tests/regression/baselines/cyclohexane/combined_forcetorque_off.json +0 -16
  112. codeentropy-2.4.3/tests/regression/baselines/cyclohexane/default.json +0 -16
  113. codeentropy-2.4.3/tests/regression/baselines/cyclohexane/frame_window.json +0 -16
  114. codeentropy-2.4.3/tests/regression/baselines/cyclohexane/rad.json +0 -16
  115. codeentropy-2.4.3/tests/regression/baselines/cyclohexane/selection_subset.json +0 -16
  116. codeentropy-2.4.3/tests/regression/baselines/ethyl-acetate/axes_off.json +0 -16
  117. codeentropy-2.4.3/tests/regression/baselines/ethyl-acetate/combined_forcetorque_off.json +0 -16
  118. codeentropy-2.4.3/tests/regression/baselines/ethyl-acetate/default.json +0 -16
  119. codeentropy-2.4.3/tests/regression/baselines/ethyl-acetate/frame_window.json +0 -16
  120. codeentropy-2.4.3/tests/regression/baselines/ethyl-acetate/rad.json +0 -16
  121. codeentropy-2.4.3/tests/regression/baselines/ethyl-acetate/selection_subset.json +0 -16
  122. codeentropy-2.4.3/tests/regression/baselines/octonol/axes_off.json +0 -16
  123. codeentropy-2.4.3/tests/regression/baselines/octonol/default.json +0 -16
  124. codeentropy-2.4.3/tests/regression/baselines/octonol/frame_window.json +0 -16
  125. codeentropy-2.4.3/tests/regression/baselines/octonol/rad.json +0 -16
  126. {codeentropy-2.4.3 → codeentropy-2.6.0}/.github/CONTRIBUTING.md +0 -0
  127. {codeentropy-2.4.3 → codeentropy-2.6.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  128. {codeentropy-2.4.3 → codeentropy-2.6.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  129. {codeentropy-2.4.3 → codeentropy-2.6.0}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
  130. {codeentropy-2.4.3 → codeentropy-2.6.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  131. {codeentropy-2.4.3 → codeentropy-2.6.0}/.github/ISSUE_TEMPLATE/general_report.md +0 -0
  132. {codeentropy-2.4.3 → codeentropy-2.6.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  133. {codeentropy-2.4.3 → codeentropy-2.6.0}/.gitignore +0 -0
  134. {codeentropy-2.4.3 → codeentropy-2.6.0}/.pre-commit-config.yaml +0 -0
  135. {codeentropy-2.4.3 → codeentropy-2.6.0}/CODE_OF_CONDUCT.md +0 -0
  136. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/__main__.py +0 -0
  137. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/config/__init__.py +0 -0
  138. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/core/__init__.py +0 -0
  139. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/core/dask_clusters.py +0 -0
  140. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/core/logging.py +0 -0
  141. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/entropy/__init__.py +0 -0
  142. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/entropy/configurational.py +0 -0
  143. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/entropy/graph.py +0 -0
  144. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/entropy/nodes/__init__.py +0 -0
  145. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/entropy/nodes/aggregate.py +0 -0
  146. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/entropy/nodes/configurational.py +0 -0
  147. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/entropy/nodes/orientational.py +0 -0
  148. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/entropy/nodes/vibrational.py +0 -0
  149. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/entropy/orientational.py +0 -0
  150. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/entropy/water.py +0 -0
  151. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/entropy/workflow.py +0 -0
  152. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/__init__.py +0 -0
  153. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/dihedrals/__init__.py +0 -0
  154. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/dihedrals/angle_observations.py +0 -0
  155. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/dihedrals/kernels.py +0 -0
  156. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/dihedrals/peak_detection.py +0 -0
  157. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/dihedrals/topology.py +0 -0
  158. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/execution/__init__.py +0 -0
  159. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/execution/chunks.py +0 -0
  160. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/execution/policy.py +0 -0
  161. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/execution/reducers.py +0 -0
  162. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/execution/scheduler.py +0 -0
  163. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/execution/tasks.py +0 -0
  164. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/forces.py +0 -0
  165. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/graph/__init__.py +0 -0
  166. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/graph/conformation_dag.py +0 -0
  167. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/graph/frame_dag.py +0 -0
  168. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/graph/level_dag.py +0 -0
  169. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/hierarchy.py +0 -0
  170. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/linalg.py +0 -0
  171. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/neighbors.py +0 -0
  172. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/nodes/__init__.py +0 -0
  173. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/nodes/accumulators.py +0 -0
  174. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/nodes/axes_topology.py +0 -0
  175. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/nodes/beads.py +0 -0
  176. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/nodes/detect_levels.py +0 -0
  177. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/nodes/detect_molecules.py +0 -0
  178. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/levels/search.py +0 -0
  179. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/molecules/__init__.py +0 -0
  180. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/molecules/grouping.py +0 -0
  181. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/results/__init__.py +0 -0
  182. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/results/reporter.py +0 -0
  183. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/trajectory/__init__.py +0 -0
  184. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/trajectory/frames.py +0 -0
  185. {codeentropy-2.4.3 → codeentropy-2.6.0}/CodeEntropy/trajectory/source.py +0 -0
  186. {codeentropy-2.4.3 → codeentropy-2.6.0}/LICENSE +0 -0
  187. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/Makefile +0 -0
  188. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/README.md +0 -0
  189. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/_static/README.md +0 -0
  190. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/_static/custom.css +0 -0
  191. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/_static/logos/biosim-codeentropy_logo_dark.png +0 -0
  192. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/_static/logos/biosim-codeentropy_logo_light.png +0 -0
  193. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/_templates/README.md +0 -0
  194. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.cli.rst +0 -0
  195. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.config.argparse.rst +0 -0
  196. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.config.rst +0 -0
  197. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.config.runtime.rst +0 -0
  198. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.core.dask_clusters.rst +0 -0
  199. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.core.logging.rst +0 -0
  200. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.core.rst +0 -0
  201. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.entropy.configurational.rst +0 -0
  202. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.entropy.graph.rst +0 -0
  203. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.entropy.nodes.aggregate.rst +0 -0
  204. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.entropy.nodes.configurational.rst +0 -0
  205. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.entropy.nodes.orientational.rst +0 -0
  206. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.entropy.nodes.rst +0 -0
  207. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.entropy.nodes.vibrational.rst +0 -0
  208. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.entropy.orientational.rst +0 -0
  209. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.entropy.rst +0 -0
  210. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.entropy.vibrational.rst +0 -0
  211. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.entropy.water.rst +0 -0
  212. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.entropy.workflow.rst +0 -0
  213. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.axes.rst +0 -0
  214. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.dihedrals.angle_observations.rst +0 -0
  215. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.dihedrals.conformational_state_builder.rst +0 -0
  216. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.dihedrals.kernels.rst +0 -0
  217. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.dihedrals.peak_detection.rst +0 -0
  218. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.dihedrals.rst +0 -0
  219. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.dihedrals.state_assignment.rst +0 -0
  220. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.dihedrals.topology.rst +0 -0
  221. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.execution.chunks.rst +0 -0
  222. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.execution.policy.rst +0 -0
  223. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.execution.reducers.rst +0 -0
  224. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.execution.rst +0 -0
  225. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.execution.scheduler.rst +0 -0
  226. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.execution.tasks.rst +0 -0
  227. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.forces.rst +0 -0
  228. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.graph.conformation_dag.rst +0 -0
  229. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.graph.frame_dag.rst +0 -0
  230. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.graph.level_dag.rst +0 -0
  231. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.graph.rst +0 -0
  232. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.hierarchy.rst +0 -0
  233. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.linalg.rst +0 -0
  234. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.neighbors.rst +0 -0
  235. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.nodes.accumulators.rst +0 -0
  236. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.nodes.axes_topology.rst +0 -0
  237. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.nodes.beads.rst +0 -0
  238. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.nodes.covariance.rst +0 -0
  239. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.nodes.detect_levels.rst +0 -0
  240. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.nodes.detect_molecules.rst +0 -0
  241. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.nodes.rst +0 -0
  242. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.rst +0 -0
  243. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.levels.search.rst +0 -0
  244. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.molecules.grouping.rst +0 -0
  245. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.molecules.rst +0 -0
  246. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.results.reporter.rst +0 -0
  247. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.results.rst +0 -0
  248. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.rst +0 -0
  249. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.trajectory.frames.rst +0 -0
  250. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.trajectory.mda.rst +0 -0
  251. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.trajectory.rst +0 -0
  252. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/CodeEntropy.trajectory.source.rst +0 -0
  253. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/api/modules.rst +0 -0
  254. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/conf.py +0 -0
  255. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/config.yaml +0 -0
  256. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/faq.rst +0 -0
  257. {codeentropy-2.4.3 → codeentropy-2.6.0}/docs/index.rst +0 -0
  258. {codeentropy-2.4.3 → codeentropy-2.6.0}/readthedocs.yml +0 -0
  259. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/__init__.py +0 -0
  260. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/cases.py +0 -0
  261. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/benzaldehyde/axes_off.yaml +0 -0
  262. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/benzaldehyde/combined_forcetorque_false.yaml +0 -0
  263. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/benzaldehyde/default.yaml +0 -0
  264. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/benzaldehyde/frame_window.yaml +0 -0
  265. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/benzaldehyde/grouping_each.yaml +0 -0
  266. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/benzaldehyde/rad.yaml +0 -0
  267. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/benzaldehyde/selection_subset.yaml +0 -0
  268. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/benzene/axes_off.yaml +0 -0
  269. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/benzene/combined_forcetorque_off.yaml +0 -0
  270. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/benzene/default.yaml +0 -0
  271. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/benzene/frame_window.yaml +0 -0
  272. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/benzene/grouping_each.yaml +0 -0
  273. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/benzene/rad.yaml +0 -0
  274. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/benzene/selection_subset.yaml +0 -0
  275. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/cyclohexane/axes_off.yaml +0 -0
  276. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/cyclohexane/combined_forcetorque_off.yaml +0 -0
  277. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/cyclohexane/default.yaml +0 -0
  278. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/cyclohexane/frame_window.yaml +0 -0
  279. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/cyclohexane/grouping_each.yaml +0 -0
  280. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/cyclohexane/rad.yaml +0 -0
  281. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/cyclohexane/selection_subset.yaml +0 -0
  282. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/dna/axes_off.yaml +0 -0
  283. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/dna/combined_forcetorque_off.yaml +0 -0
  284. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/dna/default.yaml +0 -0
  285. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/dna/frame_window.yaml +0 -0
  286. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/dna/grouping_each.yaml +0 -0
  287. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/dna/selection_subset.yaml +0 -0
  288. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/ethyl-acetate/axes_off.yaml +0 -0
  289. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/ethyl-acetate/combined_forcetorque_off.yaml +0 -0
  290. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/ethyl-acetate/default.yaml +0 -0
  291. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/ethyl-acetate/frame_window.yaml +0 -0
  292. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/ethyl-acetate/grouping_each.yaml +0 -0
  293. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/ethyl-acetate/rad.yaml +0 -0
  294. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/ethyl-acetate/selection_subset.yaml +0 -0
  295. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/methane/axes_off.yaml +0 -0
  296. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/methane/combined_forcetorque_off.yaml +0 -0
  297. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/methane/default.yaml +0 -0
  298. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/methane/frame_window.yaml +0 -0
  299. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/methane/grouping_each.yaml +0 -0
  300. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/methane/rad.yaml +0 -0
  301. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/methane/selection_subset.yaml +0 -0
  302. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/methanol/axes_off.yaml +0 -0
  303. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/methanol/combined_forcetorque_off.yaml +0 -0
  304. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/methanol/default.yaml +0 -0
  305. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/methanol/frame_window.yaml +0 -0
  306. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/methanol/grouping_each.yaml +0 -0
  307. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/methanol/rad.yaml +0 -0
  308. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/methanol/selection_subset.yaml +0 -0
  309. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/octonol/axes_off.yaml +0 -0
  310. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/octonol/combined_forcetorque_off.yaml +0 -0
  311. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/octonol/default.yaml +0 -0
  312. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/octonol/frame_window.yaml +0 -0
  313. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/octonol/grouping_each.yaml +0 -0
  314. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/octonol/rad.yaml +0 -0
  315. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/octonol/selection_subset.yaml +0 -0
  316. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/water/axes_off.yaml +0 -0
  317. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/water/combined_forcetorque_off.yaml +0 -0
  318. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/water/default.yaml +0 -0
  319. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/water/frame_window.yaml +0 -0
  320. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/water/grouping_each.yaml +0 -0
  321. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/water/rad.yaml +0 -0
  322. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/water/selection_subset.yaml +0 -0
  323. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/configs/water/water_off.yaml +0 -0
  324. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/conftest.py +0 -0
  325. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/helpers.py +0 -0
  326. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/list_systems.py +0 -0
  327. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/regression/test_regression.py +0 -0
  328. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/cli/test___main__.py +0 -0
  329. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/argparse/conftest.py +0 -0
  330. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/argparse/test_argparse_load_config.py +0 -0
  331. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/argparse/test_argparse_resolve.py +0 -0
  332. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/argparse/test_argparse_str2bool.py +0 -0
  333. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/argparse/test_argparse_validate_inputs.py +0 -0
  334. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/runtime/conftest.py +0 -0
  335. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/runtime/test_build_universe_branches.py +0 -0
  336. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/runtime/test_citation_data.py +0 -0
  337. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/runtime/test_create_job_folder.py +0 -0
  338. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/runtime/test_print_args_table.py +0 -0
  339. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/runtime/test_required_args.py +0 -0
  340. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/runtime/test_run_entropy_workflow_branches.py +0 -0
  341. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/runtime/test_runtime_properties.py +0 -0
  342. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/runtime/test_unit_conversions.py +0 -0
  343. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/config/runtime/test_universe_io.py +0 -0
  344. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/core/dask_clusters/test_dask_clusters.py +0 -0
  345. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/core/logging/conftest.py +0 -0
  346. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/core/logging/test_configure_loggers.py +0 -0
  347. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/core/logging/test_error_filter.py +0 -0
  348. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/core/logging/test_export_console.py +0 -0
  349. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/core/logging/test_get_console_singleton.py +0 -0
  350. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/core/logging/test_handlers_setup.py +0 -0
  351. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/core/logging/test_set_level.py +0 -0
  352. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/entropy/conftest.py +0 -0
  353. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/entropy/nodes/test_aggregate_node.py +0 -0
  354. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/entropy/nodes/test_configurational_node.py +0 -0
  355. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/entropy/nodes/test_orientational_node.py +0 -0
  356. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/entropy/nodes/test_vibrational_node.py +0 -0
  357. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/entropy/test_configurational_edges.py +0 -0
  358. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/entropy/test_configurational_entropy_math.py +0 -0
  359. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/entropy/test_graph.py +0 -0
  360. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/entropy/test_orientational_entropy.py +0 -0
  361. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/entropy/test_water_entropy.py +0 -0
  362. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/entropy/test_workflow.py +0 -0
  363. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/conftest.py +0 -0
  364. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/dihedrals/test_angle_observations.py +0 -0
  365. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/dihedrals/test_kernels.py +0 -0
  366. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/dihedrals/test_peak_detection.py +0 -0
  367. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/dihedrals/test_topology.py +0 -0
  368. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/execution/test_chunks.py +0 -0
  369. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/execution/test_policy.py +0 -0
  370. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/execution/test_reducers.py +0 -0
  371. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/execution/test_scheduler.py +0 -0
  372. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/execution/test_tasks.py +0 -0
  373. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/nodes/test_axes_topology.py +0 -0
  374. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/nodes/test_beads_node.py +0 -0
  375. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/nodes/test_detect_levels_node.py +0 -0
  376. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/nodes/test_detect_molecules_node.py +0 -0
  377. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/nodes/test_init_covariance_accumulators_node.py +0 -0
  378. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/test_conformation_dag.py +0 -0
  379. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/test_forces_force_torque_calculator.py +0 -0
  380. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/test_frame_graph.py +0 -0
  381. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/test_hierarchy_builder.py +0 -0
  382. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/test_level_dag.py +0 -0
  383. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/test_linalg_matrix_utils.py +0 -0
  384. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/test_neighbors.py +0 -0
  385. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/levels/test_search.py +0 -0
  386. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/molecules/test_grouping.py +0 -0
  387. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/results/test_reporter.py +0 -0
  388. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/trajectory/test_frames.py +0 -0
  389. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/CodeEntropy/trajectory/test_source.py +0 -0
  390. {codeentropy-2.4.3 → codeentropy-2.6.0}/tests/unit/conftest.py +0 -0
@@ -0,0 +1,33 @@
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": [
4
+ "config:best-practices",
5
+ "helpers:pinGitHubActionDigestsToSemver"
6
+ ],
7
+ "timezone": "Europe/London",
8
+ "schedule": ["after 9am and before 5pm every weekday"],
9
+ "dependencyDashboard": true,
10
+ "reviewers": ["harryswift01", "jimboid"],
11
+ "minimumReleaseAge": "3 days",
12
+ "packageRules": [
13
+ {
14
+ "matchManagers": ["github-actions"],
15
+ "groupName": "GitHub Actions",
16
+ "addLabels": ["ci", "dependencies"]
17
+ },
18
+ {
19
+ "matchManagers": ["poetry", "pep621"],
20
+ "matchDepTypes": ["project.dependencies"],
21
+ "rangeStrategy": "widen",
22
+ "groupName": "Software Production Dependencies",
23
+ "addLabels": ["python", "production-deps"]
24
+ },
25
+ {
26
+ "matchManagers": ["poetry", "pep621"],
27
+ "matchDepTypes": ["project.optional-dependencies", "build-system.requires"],
28
+ "rangeStrategy": "replace",
29
+ "groupName": "Python CI and Dev Tools",
30
+ "addLabels": ["python", "dev-dependencies"]
31
+ }
32
+ ]
33
+ }
@@ -16,7 +16,7 @@ concurrency:
16
16
  jobs:
17
17
  coveralls:
18
18
  name: Build main coverage baseline
19
- runs-on: ubuntu-24.04
19
+ runs-on: ubuntu-26.04
20
20
  timeout-minutes: 30
21
21
 
22
22
  permissions:
@@ -31,7 +31,7 @@ jobs:
31
31
  - name: Set up Python 3.14
32
32
  uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
33
33
  with:
34
- python-version: "3.14"
34
+ python-version: "3.15"
35
35
 
36
36
  - name: Install testing dependencies
37
37
  run: |
@@ -23,7 +23,7 @@ jobs:
23
23
 
24
24
  steps:
25
25
  - name: Checkout
26
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
26
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
27
27
 
28
28
  - name: Set up Python ${{ matrix.python-version }}
29
29
  uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
@@ -0,0 +1,50 @@
1
+ name: Dependency Floors
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '0 8 * * 1'
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ concurrency:
12
+ group: dependency-floors-${{ github.ref }}
13
+ cancel-in-progress: true
14
+
15
+ jobs:
16
+ lowest:
17
+ name: Lowest dependencies (${{ matrix.os }}, py${{ matrix.python-version }})
18
+ runs-on: ${{ matrix.os }}
19
+ timeout-minutes: 30
20
+
21
+ strategy:
22
+ fail-fast: false
23
+ matrix:
24
+ os: [ubuntu-26.04, macos-26, windows-2025-vs2026]
25
+ python-version: ["3.12", "3.13", "3.14"]
26
+
27
+ steps:
28
+ - name: Checkout
29
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
30
+
31
+ - name: Set up Python ${{ matrix.python-version }}
32
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
33
+ with:
34
+ python-version: ${{ matrix.python-version }}
35
+
36
+ - name: Install uv
37
+ run: |
38
+ python -m pip install --upgrade pip
39
+ python -m pip install uv
40
+
41
+ - name: Resolve lowest dependencies as wheels
42
+ run: |
43
+ uv pip compile pyproject.toml --resolution lowest-direct --only-binary :all: --output-file lowest.txt
44
+ cat lowest.txt
45
+
46
+ - name: Install lowest dependencies
47
+ run: uv pip install --system --resolution lowest-direct -e ".[testing]"
48
+
49
+ - name: Run unit tests
50
+ run: python -m pytest tests/unit
@@ -38,9 +38,22 @@ jobs:
38
38
  - name: Pytest unit • ${{ matrix.os }}, ${{ matrix.python-version }}
39
39
  run: python -m pytest tests/unit
40
40
 
41
+ - name: Install uv
42
+ run: python -m pip install uv
43
+
44
+ - name: Resolve lowest dependencies as wheels
45
+ run: |
46
+ uv pip compile pyproject.toml --resolution lowest-direct --only-binary :all: --output-file lowest.txt
47
+
48
+ - name: Install lowest dependencies
49
+ run: uv pip install --system --reinstall --resolution lowest-direct -e ".[testing]"
50
+
51
+ - name: Pytest unit at lowest dependencies • ${{ matrix.os }}, ${{ matrix.python-version }}
52
+ run: python -m pytest tests/unit
53
+
41
54
  discover-systems:
42
55
  name: Discover regression systems
43
- runs-on: ubuntu-24.04
56
+ runs-on: ubuntu-26.04
44
57
  outputs:
45
58
  systems: ${{ steps.set-systems.outputs.systems }}
46
59
 
@@ -51,7 +64,7 @@ jobs:
51
64
  - name: Set up Python 3.14
52
65
  uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
53
66
  with:
54
- python-version: "3.14"
67
+ python-version: "3.15"
55
68
 
56
69
  - name: Install testing dependencies
57
70
  run: |
@@ -67,7 +80,7 @@ jobs:
67
80
  regression-quick:
68
81
  name: Regression fast • ${{ matrix.system }}
69
82
  needs: discover-systems
70
- runs-on: ubuntu-24.04
83
+ runs-on: ubuntu-26.04
71
84
  timeout-minutes: 35
72
85
 
73
86
  strategy:
@@ -82,7 +95,7 @@ jobs:
82
95
  - name: Set up Python 3.14
83
96
  uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
84
97
  with:
85
- python-version: "3.14"
98
+ python-version: "3.15"
86
99
 
87
100
  - name: Install testing dependencies
88
101
  run: |
@@ -99,7 +112,7 @@ jobs:
99
112
 
100
113
  - name: Upload artifacts on failure
101
114
  if: failure()
102
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
115
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
103
116
  with:
104
117
  name: quick-regression-failure-${{ matrix.system }}
105
118
  path: |
@@ -109,7 +122,7 @@ jobs:
109
122
  docs:
110
123
  name: Docs
111
124
  needs: unit
112
- runs-on: ubuntu-24.04
125
+ runs-on: ubuntu-26.04
113
126
  timeout-minutes: 25
114
127
 
115
128
  steps:
@@ -119,7 +132,7 @@ jobs:
119
132
  - name: Set up Python 3.14
120
133
  uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
121
134
  with:
122
- python-version: "3.14"
135
+ python-version: "3.15"
123
136
 
124
137
  - name: Install docs dependencies
125
138
  run: |
@@ -133,7 +146,7 @@ jobs:
133
146
 
134
147
  - name: Upload docs artifact
135
148
  if: always()
136
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
149
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
137
150
  with:
138
151
  name: docs-html
139
152
  path: docs/_build/html
@@ -141,7 +154,7 @@ jobs:
141
154
  pre-commit:
142
155
  name: Pre-commit
143
156
  needs: unit
144
- runs-on: ubuntu-24.04
157
+ runs-on: ubuntu-26.04
145
158
  timeout-minutes: 15
146
159
 
147
160
  steps:
@@ -151,7 +164,7 @@ jobs:
151
164
  - name: Set up Python 3.14
152
165
  uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
153
166
  with:
154
- python-version: "3.14"
167
+ python-version: "3.15"
155
168
 
156
169
  - name: Install pre-commit dependencies
157
170
  run: |
@@ -170,7 +183,7 @@ jobs:
170
183
  coverage:
171
184
  name: Coverage
172
185
  needs: unit
173
- runs-on: ubuntu-24.04
186
+ runs-on: ubuntu-26.04
174
187
  timeout-minutes: 30
175
188
 
176
189
  permissions:
@@ -186,7 +199,7 @@ jobs:
186
199
  - name: Set up Python 3.14
187
200
  uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
188
201
  with:
189
- python-version: "3.14"
202
+ python-version: "3.15"
190
203
 
191
204
  - name: Install testing dependencies
192
205
  run: |
@@ -14,16 +14,16 @@ permissions:
14
14
  jobs:
15
15
  checks:
16
16
  name: Version check
17
- runs-on: ubuntu-24.04
17
+ runs-on: ubuntu-26.04
18
18
  steps:
19
19
  - name: Checkout repository
20
20
  id: repo
21
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
21
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
22
22
 
23
23
  - name: Set up Python
24
24
  uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
25
25
  with:
26
- python-version: 3.14.6
26
+ python-version: 3.15.0
27
27
 
28
28
  - name: Get latest release from pip
29
29
  id: latestreleased
@@ -42,11 +42,11 @@ jobs:
42
42
  version:
43
43
  name: prepare ${{ github.event.inputs.version }}
44
44
  needs: checks
45
- runs-on: ubuntu-24.04
45
+ runs-on: ubuntu-26.04
46
46
  steps:
47
47
 
48
48
  - name: checkout
49
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
49
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
50
50
 
51
51
  - name: Change version in repo and CITATION.cff
52
52
  run: |
@@ -92,10 +92,10 @@ jobs:
92
92
  tag:
93
93
  name: tag release
94
94
  needs: version
95
- runs-on: ubuntu-24.04
95
+ runs-on: ubuntu-26.04
96
96
  steps:
97
97
  - name: Checkout repository
98
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
98
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
99
99
  with:
100
100
  ref: main
101
101
 
@@ -109,11 +109,11 @@ jobs:
109
109
  release:
110
110
  name: make github release
111
111
  needs: tag
112
- runs-on: ubuntu-24.04
112
+ runs-on: ubuntu-26.04
113
113
  steps:
114
114
  - name: create release
115
115
  id: create_release
116
- uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2
116
+ uses: softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64 # v3.0.3
117
117
  with:
118
118
  name: v${{ github.event.inputs.version }}
119
119
  generate_release_notes: true
@@ -128,7 +128,7 @@ jobs:
128
128
  run: |
129
129
  # generate_release_notes builds the changelog server-side, so pull
130
130
  # it back down here rather than trying to reconstruct it locally.
131
- gh release view "${{ github.event.inputs.version }}" --json body -q .body > changelog.txt
131
+ gh release view "${{ github.event.inputs.version }}" --repo "${{ github.repository }}" --json body -q .body > changelog.txt
132
132
 
133
133
  - name: notify Zulip of release
134
134
  if: steps.create_release.outcome == 'success'
@@ -158,18 +158,18 @@ jobs:
158
158
  pypi:
159
159
  name: make pypi release
160
160
  needs: [tag, release]
161
- runs-on: ubuntu-24.04
161
+ runs-on: ubuntu-26.04
162
162
  steps:
163
163
 
164
164
  - name: checkout
165
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
165
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
166
166
  with:
167
167
  ref: main
168
168
 
169
169
  - name: Set up Python
170
170
  uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
171
171
  with:
172
- python-version: 3.14.6
172
+ python-version: 3.15.0
173
173
 
174
174
  - name: Install flit
175
175
  run: |
@@ -186,11 +186,11 @@ jobs:
186
186
  conda:
187
187
  name: publish conda to anaconda.org
188
188
  needs: [tag, release]
189
- runs-on: ubuntu-24.04
189
+ runs-on: ubuntu-26.04
190
190
 
191
191
  steps:
192
192
  - name: Checkout
193
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
193
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
194
194
  with:
195
195
  ref: main
196
196
 
@@ -200,10 +200,10 @@ jobs:
200
200
  grep '{% set version' conda-recipe/meta.yaml
201
201
 
202
202
  - name: Setup Conda (conda-forge only)
203
- uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4
203
+ uses: conda-incubator/setup-miniconda@be893c923ea9cf1cf7cd510fbdde27c7e18cbdcb # v4.1.0
204
204
  with:
205
205
  miniforge-variant: Miniforge3
206
- python-version: "3.12"
206
+ python-version: "3.15"
207
207
  auto-activate: true
208
208
  activate-environment: base
209
209
  conda-remove-defaults: true
@@ -9,9 +9,9 @@ jobs:
9
9
  update-license-year:
10
10
  runs-on: ubuntu-latest
11
11
  steps:
12
- - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
12
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
13
13
  with:
14
14
  fetch-depth: 0
15
- - uses: FantasticFiasco/action-update-license-year@f180e962fa988db222d8f03ef4636750312d1b3d # v3
15
+ - uses: FantasticFiasco/action-update-license-year@f180e962fa988db222d8f03ef4636750312d1b3d # v3.0.4
16
16
  with:
17
17
  token: ${{ secrets.GITHUB_TOKEN }}
@@ -13,19 +13,19 @@ permissions:
13
13
  jobs:
14
14
  update-baselines:
15
15
  name: Update regression baselines
16
- runs-on: ubuntu-24.04
16
+ runs-on: ubuntu-26.04
17
17
  timeout-minutes: 30
18
18
 
19
19
  steps:
20
20
  - name: Checkout
21
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
21
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
22
22
  with:
23
23
  ref: ${{ github.ref }}
24
24
 
25
25
  - name: Set up Python
26
26
  uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
27
27
  with:
28
- python-version: "3.14"
28
+ python-version: "3.15"
29
29
 
30
30
  - name: Install testing dependencies
31
31
  run: |
@@ -36,7 +36,7 @@ jobs:
36
36
  run: pytest tests/regression --update-baselines --run-slow
37
37
 
38
38
  - name: Commit updated baselines
39
- uses: stefanzweifel/git-auto-commit-action@4a55954c782fc1ea30b9056cd3e7a2b40ca8887d # v7
39
+ uses: stefanzweifel/git-auto-commit-action@4a55954c782fc1ea30b9056cd3e7a2b40ca8887d # v7.2.0
40
40
  with:
41
41
  commit_message: "test(regression): update baselines"
42
42
  commit_user_name: github-actions[bot]
@@ -22,7 +22,7 @@ jobs:
22
22
 
23
23
  steps:
24
24
  - name: Checkout repo
25
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
25
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
26
26
 
27
27
  - name: Set up Python ${{ matrix.python-version }}
28
28
  uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
@@ -41,7 +41,7 @@ jobs:
41
41
 
42
42
  - name: Upload docs artifacts on failure
43
43
  if: failure()
44
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
44
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
45
45
  with:
46
46
  name: docs-${{ matrix.os }}-py${{ matrix.python-version }}-failure
47
47
  path: |
@@ -12,7 +12,7 @@ concurrency:
12
12
  jobs:
13
13
  discover:
14
14
  name: Discover regression systems
15
- runs-on: ubuntu-24.04
15
+ runs-on: ubuntu-26.04
16
16
 
17
17
  outputs:
18
18
  systems: ${{ steps.set.outputs.systems }}
@@ -24,7 +24,7 @@ jobs:
24
24
  - name: Set up Python 3.14
25
25
  uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
26
26
  with:
27
- python-version: "3.14"
27
+ python-version: "3.15"
28
28
 
29
29
  - name: Install testing dependencies
30
30
  run: |
@@ -40,7 +40,7 @@ jobs:
40
40
  regression:
41
41
  name: Regression (${{ matrix.system }})
42
42
  needs: discover
43
- runs-on: ubuntu-24.04
43
+ runs-on: ubuntu-26.04
44
44
  timeout-minutes: 360
45
45
 
46
46
  strategy:
@@ -55,7 +55,7 @@ jobs:
55
55
  - name: Set up Python 3.14
56
56
  uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
57
57
  with:
58
- python-version: "3.14"
58
+ python-version: "3.15"
59
59
 
60
60
  - name: Install testing dependencies
61
61
  run: |
@@ -72,7 +72,7 @@ jobs:
72
72
 
73
73
  - name: Upload regression artifacts (failure)
74
74
  if: failure()
75
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
75
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
76
76
  with:
77
77
  name: regression-${{ matrix.system }}-artifacts
78
78
  path: |
@@ -76,5 +76,5 @@ keywords:
76
76
  - biomolecular simulations
77
77
  - protein flexibility
78
78
  license: MIT
79
- version: 2.4.3
80
- date-released: '2026-08-26'
79
+ version: 2.6.0
80
+ date-released: '2026-10-14'
@@ -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.4.3"
11
+ __version__ = "2.6.0"
@@ -4,16 +4,18 @@ This module provides the CLI entry point used to run the multiscale cell
4
4
  correlation entropy workflow.
5
5
 
6
6
  The entry point is intentionally small and only responsible for:
7
- 1) Creating a job folder.
8
- 2) Constructing a CodeEntropyRunner.
9
- 3) Executing the entropy workflow.
10
- 4) Handling fatal errors with a non-zero exit code.
7
+ 1) Handling informational flags such as ``--version``.
8
+ 2) Creating a job folder.
9
+ 3) Constructing a CodeEntropyRunner.
10
+ 4) Executing the entropy workflow.
11
+ 5) Handling fatal errors with a non-zero exit code.
11
12
  """
12
13
 
13
14
  from __future__ import annotations
14
15
 
15
16
  import logging
16
17
 
18
+ from CodeEntropy.config.argparse import ConfigResolver
17
19
  from CodeEntropy.config.runtime import CodeEntropyRunner
18
20
 
19
21
  logger = logging.getLogger(__name__)
@@ -22,9 +24,15 @@ logger = logging.getLogger(__name__)
22
24
  def main() -> None:
23
25
  """Run the entropy workflow.
24
26
 
27
+ Arguments are parsed before any side effects so that informational flags such
28
+ as ``--version`` and ``--help`` exit without creating a job folder or
29
+ rendering the splash screen.
30
+
25
31
  Raises:
26
32
  SystemExit: Exits with status code 1 on any unhandled exception.
27
33
  """
34
+ ConfigResolver().build_parser().parse_known_args()
35
+
28
36
  folder = CodeEntropyRunner.create_job_folder()
29
37
 
30
38
  try:
@@ -31,6 +31,7 @@ from typing import Any
31
31
 
32
32
  import yaml
33
33
 
34
+ from CodeEntropy import __version__
34
35
  from CodeEntropy.core.dask_clusters import HPCDaskManager
35
36
 
36
37
  logger = logging.getLogger(__name__)
@@ -318,6 +319,11 @@ class ConfigResolver:
318
319
  parser = argparse.ArgumentParser(
319
320
  description="CodeEntropy: entropy calculation with the MCC method."
320
321
  )
322
+ parser.add_argument(
323
+ "--version",
324
+ action="version",
325
+ version=f"CodeEntropy {__version__}",
326
+ )
321
327
 
322
328
  for name, spec in self._arg_specs.items():
323
329
  arg_name = f"--{name}"
@@ -32,6 +32,7 @@ from rich.rule import Rule
32
32
  from rich.table import Table
33
33
  from rich.text import Text
34
34
 
35
+ from CodeEntropy import __version__
35
36
  from CodeEntropy.config.argparse import ConfigResolver
36
37
  from CodeEntropy.core.dask_clusters import HPCDaskManager
37
38
  from CodeEntropy.core.logging import LoggingConfig
@@ -135,20 +136,21 @@ class CodeEntropyRunner:
135
136
  return None
136
137
 
137
138
  def show_splash(self) -> None:
138
- """Render a Rich splash screen with optional citation metadata."""
139
+ """Render a Rich splash screen.
140
+
141
+ The version shown is that of the locally installed package. Remaining
142
+ metadata (authors, description, URL) comes from the online citation file
143
+ when it is reachable.
144
+ """
139
145
  citation = self.load_citation_data()
146
+ version_text = Align.center(Text(f"Version {__version__}", style="green"))
140
147
 
141
148
  if citation:
142
149
  ascii_title = text2art(citation.get("title", "CodeEntropy"))
143
150
  ascii_render = Align.center(Text(ascii_title, style="bold white"))
144
151
 
145
- version = citation.get("version", "?")
146
- release_date = citation.get("date-released", "?")
147
152
  url = citation.get("url", citation.get("repository-code", ""))
148
153
 
149
- version_text = Align.center(
150
- Text(f"Version {version} | Released {release_date}", style="green")
151
- )
152
154
  url_text = Align.center(Text(url, style="blue underline"))
153
155
 
154
156
  abstract = citation.get("abstract", "No description available.")
@@ -193,7 +195,7 @@ class CodeEntropyRunner:
193
195
  else:
194
196
  ascii_title = text2art("CodeEntropy")
195
197
  ascii_render = Align.center(Text(ascii_title, style="bold white"))
196
- splash_content = Group(ascii_render)
198
+ splash_content = Group(ascii_render, Rule(style="cyan"), version_text)
197
199
 
198
200
  splash_panel = Panel(
199
201
  splash_content,
@@ -148,7 +148,7 @@ class VibrationalEntropy:
148
148
  Eigenvalues as a NumPy array.
149
149
  """
150
150
  matrix = np.asarray(matrix, dtype=float)
151
- return la.eigvals(matrix)
151
+ return la.eigvalsh(matrix)
152
152
 
153
153
  def _convert_lambda_units(self, lambdas: np.ndarray) -> np.ndarray:
154
154
  """Convert eigenvalues into SI units using run_manager.
@@ -185,7 +185,10 @@ class VibrationalEntropy:
185
185
  """Convert eigenvalues to frequencies with robust filtering.
186
186
 
187
187
  Filters out eigenvalues that are complex, non-positive, or near-zero to
188
- avoid invalid frequencies and unstable entropies.
188
+ avoid invalid frequencies and unstable entropies. The near-zero
189
+ tolerance scales with the spectrum's own magnitude (as in
190
+ ``numpy.linalg.matrix_rank``) rather than using a fixed cutoff, since
191
+ the eigensolver noise floor around a true null mode is not constant.
189
192
 
190
193
  Args:
191
194
  lambdas: Eigenvalues (post unit conversion).
@@ -197,8 +200,11 @@ class VibrationalEntropy:
197
200
  lambdas = np.asarray(lambdas)
198
201
  lambdas = np.real_if_close(lambdas, tol=1000)
199
202
 
203
+ scale = float(np.max(np.abs(lambdas))) if lambdas.size else 0.0
204
+ atol = lambdas.size * np.finfo(float).eps * scale
205
+
200
206
  valid_mask = (
201
- np.isreal(lambdas) & (lambdas > 0) & (~np.isclose(lambdas, 0, atol=1e-7))
207
+ np.isreal(lambdas) & (lambdas > 0) & (~np.isclose(lambdas, 0, atol=atol))
202
208
  )
203
209
 
204
210
  removed = int(len(lambdas) - np.count_nonzero(valid_mask))