CodeEntropy 2.5.0__tar.gz → 2.6.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.
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.github/renovate.json +3 -3
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.github/workflows/coveralls-main.yaml +1 -1
- codeentropy-2.6.1/.github/workflows/dependency-floors.yaml +50 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.github/workflows/pr.yaml +20 -7
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.github/workflows/update_regression_baselines.yaml +1 -1
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.github/workflows/weekly-docs.yaml +1 -1
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.github/workflows/weekly-regression.yaml +3 -3
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CITATION.cff +2 -2
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/__init__.py +1 -1
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/cli.py +12 -4
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/config/argparse.py +6 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/config/runtime.py +9 -7
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/dihedrals/conformational_state_builder.py +15 -5
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/dihedrals/state_assignment.py +9 -6
- {codeentropy-2.5.0 → codeentropy-2.6.1}/PKG-INFO +7 -7
- {codeentropy-2.5.0 → codeentropy-2.6.1}/README.md +1 -1
- {codeentropy-2.5.0 → codeentropy-2.6.1}/conda-recipe/meta.yaml +16 -16
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/developer_guide.rst +21 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/pyproject.toml +5 -5
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/benzaldehyde/axes_off.json +4 -4
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/benzaldehyde/combined_forcetorque_false.json +3 -3
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/benzaldehyde/default.json +3 -3
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/benzaldehyde/frame_window.json +2 -2
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/benzaldehyde/grouping_each.json +12 -12
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/benzaldehyde/rad.json +3 -3
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/benzaldehyde/selection_subset.json +3 -3
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/benzene/axes_off.json +4 -4
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/benzene/combined_forcetorque_off.json +3 -3
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/benzene/default.json +4 -4
- codeentropy-2.6.1/tests/regression/baselines/benzene/frame_window.json +16 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/benzene/grouping_each.json +22 -22
- codeentropy-2.6.1/tests/regression/baselines/benzene/rad.json +16 -0
- codeentropy-2.6.1/tests/regression/baselines/benzene/selection_subset.json +16 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/cyclohexane/axes_off.json +4 -4
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/cyclohexane/combined_forcetorque_off.json +4 -4
- codeentropy-2.6.1/tests/regression/baselines/cyclohexane/default.json +16 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/cyclohexane/frame_window.json +4 -4
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/cyclohexane/grouping_each.json +20 -20
- codeentropy-2.6.1/tests/regression/baselines/cyclohexane/rad.json +16 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/cyclohexane/selection_subset.json +3 -3
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/dna/axes_off.json +6 -6
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/dna/combined_forcetorque_off.json +8 -8
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/dna/default.json +5 -5
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/dna/frame_window.json +6 -6
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/dna/grouping_each.json +5 -5
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/dna/selection_subset.json +5 -5
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/ethyl-acetate/axes_off.json +2 -2
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/ethyl-acetate/combined_forcetorque_off.json +4 -4
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/ethyl-acetate/default.json +2 -2
- codeentropy-2.6.1/tests/regression/baselines/ethyl-acetate/frame_window.json +16 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/ethyl-acetate/grouping_each.json +17 -17
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/ethyl-acetate/rad.json +3 -3
- codeentropy-2.6.1/tests/regression/baselines/ethyl-acetate/selection_subset.json +16 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/methane/axes_off.json +2 -2
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/methane/combined_forcetorque_off.json +3 -3
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/methane/default.json +3 -3
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/methane/grouping_each.json +27 -27
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/methane/rad.json +3 -3
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/methane/selection_subset.json +3 -3
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/methanol/axes_off.json +4 -4
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/methanol/combined_forcetorque_off.json +4 -4
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/methanol/default.json +3 -3
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/methanol/frame_window.json +3 -3
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/methanol/grouping_each.json +23 -23
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/methanol/rad.json +3 -3
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/methanol/selection_subset.json +4 -4
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/octonol/axes_off.json +1 -1
- codeentropy-2.6.1/tests/regression/baselines/octonol/combined_forcetorque_off.json +16 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/octonol/default.json +3 -3
- codeentropy-2.6.1/tests/regression/baselines/octonol/frame_window.json +16 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/octonol/grouping_each.json +16 -16
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/octonol/rad.json +3 -3
- codeentropy-2.6.1/tests/regression/baselines/octonol/selection_subset.json +16 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/water/axes_off.json +2 -2
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/water/grouping_each.json +17 -17
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/water/rad.json +2 -2
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/cli/test_cli.py +14 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/argparse/test_argparse_build_parser.py +13 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/runtime/test_show_splash.py +8 -3
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/dihedrals/test_conformational_state_builder.py +6 -6
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/dihedrals/test_state_assignment.py +5 -4
- codeentropy-2.5.0/tests/regression/baselines/benzene/frame_window.json +0 -16
- codeentropy-2.5.0/tests/regression/baselines/benzene/rad.json +0 -16
- codeentropy-2.5.0/tests/regression/baselines/benzene/selection_subset.json +0 -16
- codeentropy-2.5.0/tests/regression/baselines/cyclohexane/default.json +0 -16
- codeentropy-2.5.0/tests/regression/baselines/cyclohexane/rad.json +0 -16
- codeentropy-2.5.0/tests/regression/baselines/ethyl-acetate/frame_window.json +0 -16
- codeentropy-2.5.0/tests/regression/baselines/ethyl-acetate/selection_subset.json +0 -16
- codeentropy-2.5.0/tests/regression/baselines/octonol/combined_forcetorque_off.json +0 -16
- codeentropy-2.5.0/tests/regression/baselines/octonol/frame_window.json +0 -16
- codeentropy-2.5.0/tests/regression/baselines/octonol/selection_subset.json +0 -16
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.github/CONTRIBUTING.md +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.github/ISSUE_TEMPLATE/general_report.md +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.github/workflows/daily.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.github/workflows/release.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.github/workflows/update-copyright-years-in-license-file.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.gitignore +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/.pre-commit-config.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CODE_OF_CONDUCT.md +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/__main__.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/config/__init__.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/core/__init__.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/core/dask_clusters.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/core/logging.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/entropy/__init__.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/entropy/configurational.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/entropy/graph.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/entropy/nodes/__init__.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/entropy/nodes/aggregate.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/entropy/nodes/configurational.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/entropy/nodes/orientational.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/entropy/nodes/vibrational.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/entropy/orientational.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/entropy/vibrational.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/entropy/water.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/entropy/workflow.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/__init__.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/axes.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/dihedrals/__init__.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/dihedrals/angle_observations.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/dihedrals/kernels.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/dihedrals/peak_detection.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/dihedrals/topology.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/execution/__init__.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/execution/chunks.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/execution/policy.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/execution/reducers.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/execution/scheduler.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/execution/tasks.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/forces.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/graph/__init__.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/graph/conformation_dag.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/graph/frame_dag.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/graph/level_dag.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/hierarchy.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/linalg.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/neighbors.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/nodes/__init__.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/nodes/accumulators.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/nodes/axes_topology.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/nodes/beads.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/nodes/covariance.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/nodes/detect_levels.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/nodes/detect_molecules.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/search.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/molecules/__init__.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/molecules/grouping.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/results/__init__.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/results/reporter.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/trajectory/__init__.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/trajectory/frames.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/trajectory/mda.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/trajectory/source.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/LICENSE +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/Makefile +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/README.md +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/_static/README.md +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/_static/custom.css +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/_static/logos/biosim-codeentropy_logo_dark.png +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/_static/logos/biosim-codeentropy_logo_light.png +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/_templates/README.md +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.cli.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.config.argparse.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.config.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.config.runtime.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.core.dask_clusters.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.core.logging.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.core.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.entropy.configurational.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.entropy.graph.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.entropy.nodes.aggregate.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.entropy.nodes.configurational.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.entropy.nodes.orientational.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.entropy.nodes.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.entropy.nodes.vibrational.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.entropy.orientational.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.entropy.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.entropy.vibrational.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.entropy.water.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.entropy.workflow.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.axes.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.dihedrals.angle_observations.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.dihedrals.conformational_state_builder.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.dihedrals.kernels.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.dihedrals.peak_detection.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.dihedrals.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.dihedrals.state_assignment.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.dihedrals.topology.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.execution.chunks.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.execution.policy.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.execution.reducers.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.execution.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.execution.scheduler.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.execution.tasks.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.forces.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.graph.conformation_dag.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.graph.frame_dag.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.graph.level_dag.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.graph.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.hierarchy.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.linalg.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.neighbors.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.nodes.accumulators.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.nodes.axes_topology.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.nodes.beads.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.nodes.covariance.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.nodes.detect_levels.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.nodes.detect_molecules.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.nodes.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.levels.search.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.molecules.grouping.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.molecules.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.results.reporter.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.results.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.trajectory.frames.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.trajectory.mda.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.trajectory.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/CodeEntropy.trajectory.source.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/api/modules.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/conf.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/config.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/faq.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/getting_started.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/index.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/docs/science.rst +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/readthedocs.yml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/__init__.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/methane/frame_window.json +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/water/combined_forcetorque_off.json +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/water/default.json +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/water/frame_window.json +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/water/selection_subset.json +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/water/water_off.json +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/cases.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/benzaldehyde/axes_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/benzaldehyde/combined_forcetorque_false.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/benzaldehyde/default.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/benzaldehyde/frame_window.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/benzaldehyde/grouping_each.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/benzaldehyde/rad.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/benzaldehyde/selection_subset.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/benzene/axes_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/benzene/combined_forcetorque_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/benzene/default.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/benzene/frame_window.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/benzene/grouping_each.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/benzene/rad.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/benzene/selection_subset.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/cyclohexane/axes_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/cyclohexane/combined_forcetorque_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/cyclohexane/default.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/cyclohexane/frame_window.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/cyclohexane/grouping_each.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/cyclohexane/rad.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/cyclohexane/selection_subset.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/dna/axes_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/dna/combined_forcetorque_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/dna/default.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/dna/frame_window.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/dna/grouping_each.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/dna/selection_subset.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/ethyl-acetate/axes_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/ethyl-acetate/combined_forcetorque_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/ethyl-acetate/default.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/ethyl-acetate/frame_window.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/ethyl-acetate/grouping_each.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/ethyl-acetate/rad.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/ethyl-acetate/selection_subset.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/methane/axes_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/methane/combined_forcetorque_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/methane/default.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/methane/frame_window.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/methane/grouping_each.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/methane/rad.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/methane/selection_subset.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/methanol/axes_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/methanol/combined_forcetorque_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/methanol/default.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/methanol/frame_window.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/methanol/grouping_each.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/methanol/rad.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/methanol/selection_subset.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/octonol/axes_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/octonol/combined_forcetorque_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/octonol/default.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/octonol/frame_window.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/octonol/grouping_each.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/octonol/rad.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/octonol/selection_subset.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/water/axes_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/water/combined_forcetorque_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/water/default.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/water/frame_window.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/water/grouping_each.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/water/rad.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/water/selection_subset.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/configs/water/water_off.yaml +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/conftest.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/helpers.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/list_systems.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/test_regression.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/cli/test___main__.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/argparse/conftest.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/argparse/test_argparse_load_config.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/argparse/test_argparse_resolve.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/argparse/test_argparse_str2bool.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/argparse/test_argparse_validate_inputs.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/runtime/conftest.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/runtime/test_build_universe_branches.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/runtime/test_citation_data.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/runtime/test_create_job_folder.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/runtime/test_print_args_table.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/runtime/test_required_args.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/runtime/test_run_entropy_workflow_branches.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/runtime/test_runtime_properties.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/runtime/test_unit_conversions.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/config/runtime/test_universe_io.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/core/dask_clusters/test_dask_clusters.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/core/logging/conftest.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/core/logging/test_configure_loggers.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/core/logging/test_error_filter.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/core/logging/test_export_console.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/core/logging/test_get_console_singleton.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/core/logging/test_handlers_setup.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/core/logging/test_set_level.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/entropy/conftest.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/entropy/nodes/test_aggregate_node.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/entropy/nodes/test_configurational_node.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/entropy/nodes/test_orientational_node.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/entropy/nodes/test_vibrational_node.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/entropy/test_configurational_edges.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/entropy/test_configurational_entropy_math.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/entropy/test_graph.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/entropy/test_orientational_entropy.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/entropy/test_vibrational_entropy_math.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/entropy/test_water_entropy.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/entropy/test_workflow.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/conftest.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/dihedrals/test_angle_observations.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/dihedrals/test_kernels.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/dihedrals/test_peak_detection.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/dihedrals/test_topology.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/execution/test_chunks.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/execution/test_policy.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/execution/test_reducers.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/execution/test_scheduler.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/execution/test_tasks.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/nodes/test_axes_topology.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/nodes/test_beads_node.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/nodes/test_covariance_node.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/nodes/test_detect_levels_node.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/nodes/test_detect_molecules_node.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/nodes/test_init_covariance_accumulators_node.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/test_axes.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/test_conformation_dag.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/test_forces_force_torque_calculator.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/test_frame_graph.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/test_hierarchy_builder.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/test_level_dag.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/test_linalg_matrix_utils.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/test_mda_universe_operations.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/test_neighbors.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/levels/test_search.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/molecules/test_grouping.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/results/test_reporter.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/trajectory/test_frames.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/CodeEntropy/trajectory/test_source.py +0 -0
- {codeentropy-2.5.0 → codeentropy-2.6.1}/tests/unit/conftest.py +0 -0
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"timezone": "Europe/London",
|
|
8
8
|
"schedule": ["after 9am and before 5pm every weekday"],
|
|
9
9
|
"dependencyDashboard": true,
|
|
10
|
-
"
|
|
10
|
+
"reviewers": ["harryswift01", "jimboid"],
|
|
11
11
|
"minimumReleaseAge": "3 days",
|
|
12
12
|
"packageRules": [
|
|
13
13
|
{
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
"addLabels": ["ci", "dependencies"]
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
|
-
"matchManagers": ["pep621"],
|
|
19
|
+
"matchManagers": ["poetry", "pep621"],
|
|
20
20
|
"matchDepTypes": ["project.dependencies"],
|
|
21
21
|
"rangeStrategy": "widen",
|
|
22
22
|
"groupName": "Software Production Dependencies",
|
|
23
23
|
"addLabels": ["python", "production-deps"]
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
|
-
"matchManagers": ["pep621"],
|
|
26
|
+
"matchManagers": ["poetry", "pep621"],
|
|
27
27
|
"matchDepTypes": ["project.optional-dependencies", "build-system.requires"],
|
|
28
28
|
"rangeStrategy": "replace",
|
|
29
29
|
"groupName": "Python CI and Dev Tools",
|
|
@@ -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,6 +38,19 @@ 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
56
|
runs-on: ubuntu-26.04
|
|
@@ -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.
|
|
67
|
+
python-version: "3.15"
|
|
55
68
|
|
|
56
69
|
- name: Install testing dependencies
|
|
57
70
|
run: |
|
|
@@ -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.
|
|
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@
|
|
115
|
+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
103
116
|
with:
|
|
104
117
|
name: quick-regression-failure-${{ matrix.system }}
|
|
105
118
|
path: |
|
|
@@ -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.
|
|
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@
|
|
149
|
+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
137
150
|
with:
|
|
138
151
|
name: docs-html
|
|
139
152
|
path: docs/_build/html
|
|
@@ -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.
|
|
167
|
+
python-version: "3.15"
|
|
155
168
|
|
|
156
169
|
- name: Install pre-commit dependencies
|
|
157
170
|
run: |
|
|
@@ -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.
|
|
202
|
+
python-version: "3.15"
|
|
190
203
|
|
|
191
204
|
- name: Install testing dependencies
|
|
192
205
|
run: |
|
|
@@ -41,7 +41,7 @@ jobs:
|
|
|
41
41
|
|
|
42
42
|
- name: Upload docs artifacts on failure
|
|
43
43
|
if: failure()
|
|
44
|
-
uses: actions/upload-artifact@
|
|
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: |
|
|
@@ -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.
|
|
27
|
+
python-version: "3.15"
|
|
28
28
|
|
|
29
29
|
- name: Install testing dependencies
|
|
30
30
|
run: |
|
|
@@ -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.
|
|
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@
|
|
75
|
+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
76
76
|
with:
|
|
77
77
|
name: regression-${{ matrix.system }}-artifacts
|
|
78
78
|
path: |
|
|
@@ -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)
|
|
8
|
-
2)
|
|
9
|
-
3)
|
|
10
|
-
4)
|
|
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
|
|
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,
|
{codeentropy-2.5.0 → codeentropy-2.6.1}/CodeEntropy/levels/dihedrals/conformational_state_builder.py
RENAMED
|
@@ -46,7 +46,12 @@ class ConformationStateBuilder(ConformationPeakDetector, ConformationStateAssign
|
|
|
46
46
|
frame_selection: FrameSelection,
|
|
47
47
|
progress: _RichProgressSink | None = None,
|
|
48
48
|
chunk_size: int | None = None,
|
|
49
|
-
) -> tuple[
|
|
49
|
+
) -> tuple[
|
|
50
|
+
dict[UAKey, list[str]],
|
|
51
|
+
dict[int, list[str]],
|
|
52
|
+
dict[UAKey, int],
|
|
53
|
+
dict[int, int],
|
|
54
|
+
]:
|
|
50
55
|
"""Build conformational state labels from selected trajectory frames.
|
|
51
56
|
|
|
52
57
|
Args:
|
|
@@ -87,7 +92,12 @@ class ConformationStateBuilder(ConformationPeakDetector, ConformationStateAssign
|
|
|
87
92
|
frame_selection: FrameSelection,
|
|
88
93
|
chunk_size: int,
|
|
89
94
|
progress: _RichProgressSink | None = None,
|
|
90
|
-
) -> tuple[
|
|
95
|
+
) -> tuple[
|
|
96
|
+
dict[UAKey, list[str]],
|
|
97
|
+
dict[int, list[str]],
|
|
98
|
+
dict[UAKey, int],
|
|
99
|
+
dict[int, int],
|
|
100
|
+
]:
|
|
91
101
|
"""Build conformational states with serial frame-chunk map-reduce.
|
|
92
102
|
|
|
93
103
|
Args:
|
|
@@ -108,11 +118,10 @@ class ConformationStateBuilder(ConformationPeakDetector, ConformationStateAssign
|
|
|
108
118
|
if chunk_size < 1:
|
|
109
119
|
raise ValueError("chunk_size must be >= 1")
|
|
110
120
|
|
|
111
|
-
number_groups = len(groups)
|
|
112
121
|
states_ua: dict[UAKey, list[str]] = {}
|
|
113
|
-
states_res:
|
|
122
|
+
states_res: dict[int, list[str]] = {}
|
|
114
123
|
flexible_ua: dict[UAKey, int] = {}
|
|
115
|
-
flexible_res:
|
|
124
|
+
flexible_res: dict[int, int] = {}
|
|
116
125
|
|
|
117
126
|
task: TaskID | None = None
|
|
118
127
|
if progress is not None:
|
|
@@ -186,6 +195,7 @@ class ConformationStateBuilder(ConformationPeakDetector, ConformationStateAssign
|
|
|
186
195
|
state_data = self._reduce_state_partials(state_partials)
|
|
187
196
|
|
|
188
197
|
self._merge_group_state_data(
|
|
198
|
+
group_id=group_id,
|
|
189
199
|
state_data=state_data,
|
|
190
200
|
states_ua=states_ua,
|
|
191
201
|
states_res=states_res,
|
|
@@ -170,20 +170,23 @@ class ConformationStateAssigner:
|
|
|
170
170
|
|
|
171
171
|
@staticmethod
|
|
172
172
|
def _merge_group_state_data(
|
|
173
|
+
group_id: int,
|
|
173
174
|
state_data: ConformationStateData,
|
|
174
175
|
states_ua: dict[UAKey, list[str]],
|
|
175
|
-
states_res:
|
|
176
|
+
states_res: dict[int, list[str]],
|
|
176
177
|
flexible_ua: dict[UAKey, int],
|
|
177
|
-
flexible_res:
|
|
178
|
+
flexible_res: dict[int, int],
|
|
178
179
|
) -> None:
|
|
179
180
|
"""Merge one group's state data into final output accumulators.
|
|
180
181
|
|
|
181
182
|
Args:
|
|
183
|
+
group_id: Id of the group the state data belongs to.
|
|
182
184
|
state_data: Serial conformational state data for one group.
|
|
183
185
|
states_ua: UA state accumulator to mutate.
|
|
184
|
-
states_res: Residue state accumulator to mutate.
|
|
186
|
+
states_res: Residue state accumulator, keyed by group id, to mutate.
|
|
185
187
|
flexible_ua: UA flexible-dihedral accumulator to mutate.
|
|
186
|
-
flexible_res: Residue flexible-dihedral accumulator
|
|
188
|
+
flexible_res: Residue flexible-dihedral accumulator, keyed by group id,
|
|
189
|
+
to mutate.
|
|
187
190
|
|
|
188
191
|
Returns:
|
|
189
192
|
None. Mutates the provided accumulators.
|
|
@@ -199,8 +202,8 @@ class ConformationStateAssigner:
|
|
|
199
202
|
state_data.flexible_ua_updates[key],
|
|
200
203
|
)
|
|
201
204
|
|
|
202
|
-
states_res
|
|
203
|
-
flexible_res
|
|
205
|
+
states_res[group_id] = state_data.state_res
|
|
206
|
+
flexible_res[group_id] = state_data.flex_res
|
|
204
207
|
|
|
205
208
|
def _process_conformations_from_angles(
|
|
206
209
|
self,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: CodeEntropy
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.6.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>
|
|
@@ -16,21 +16,21 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
16
16
|
Classifier: Natural Language :: English
|
|
17
17
|
Classifier: Development Status :: 5 - Production/Stable
|
|
18
18
|
License-File: LICENSE
|
|
19
|
-
Requires-Dist: numpy>=2.3.
|
|
19
|
+
Requires-Dist: numpy>=2.3.5,<2.6.0
|
|
20
20
|
Requires-Dist: mdanalysis>=2.10,<3.0
|
|
21
21
|
Requires-Dist: pandas>=2.3.3,<4.0
|
|
22
|
-
Requires-Dist: psutil>=
|
|
22
|
+
Requires-Dist: psutil>=7.1.3,<8.0
|
|
23
23
|
Requires-Dist: PyYAML>=6.0.3,<7.0
|
|
24
24
|
Requires-Dist: rich>=13.0.0,<16.0
|
|
25
25
|
Requires-Dist: art>=5.0,<7.0
|
|
26
26
|
Requires-Dist: networkx>=2.8,<4.0
|
|
27
27
|
Requires-Dist: waterEntropy>=2,<3.0
|
|
28
28
|
Requires-Dist: requests>=2.32.2,<3.0
|
|
29
|
-
Requires-Dist: rdkit>=2025.3.4,<
|
|
29
|
+
Requires-Dist: rdkit>=2025.3.4,<2027
|
|
30
30
|
Requires-Dist: numba>=0.63.0,<0.70
|
|
31
|
-
Requires-Dist: dask>=2025.
|
|
31
|
+
Requires-Dist: dask>=2025.7.0,<2027.1.0
|
|
32
32
|
Requires-Dist: dask-jobqueue>=0.9.0,<1.0
|
|
33
|
-
Requires-Dist: distributed>=2025.
|
|
33
|
+
Requires-Dist: distributed>=2025.7.0,<2027.1.0
|
|
34
34
|
Requires-Dist: sphinx>=8.0.0,<10.0 ; extra == "docs"
|
|
35
35
|
Requires-Dist: nbsphinx>=0.9.3,<1.0 ; extra == "docs"
|
|
36
36
|
Requires-Dist: sphinx_copybutton>=0.5,<1.0 ; extra == "docs"
|
|
@@ -56,7 +56,7 @@ CodeEntropy
|
|
|
56
56
|
|
|
57
57
|
| Category | Badges |
|
|
58
58
|
|----------------|--------|
|
|
59
|
-
| **Build** | [](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/pr.yaml) [](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/daily.yaml) |
|
|
59
|
+
| **Build** | [](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/pr.yaml) [](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/daily.yaml) [](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/dependency-floors.yaml) |
|
|
60
60
|
| **Regression** | [](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/weekly-regression.yaml) |
|
|
61
61
|
| **Documentation** | [](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/weekly-docs.yaml) [](https://codeentropy.readthedocs.io/en/latest/?badge=latest) |
|
|
62
62
|
| **Citation** | [](https://doi.org/10.5281/zenodo.17570721) |
|
|
@@ -3,7 +3,7 @@ CodeEntropy
|
|
|
3
3
|
|
|
4
4
|
| Category | Badges |
|
|
5
5
|
|----------------|--------|
|
|
6
|
-
| **Build** | [](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/pr.yaml) [](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/daily.yaml) |
|
|
6
|
+
| **Build** | [](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/pr.yaml) [](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/daily.yaml) [](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/dependency-floors.yaml) |
|
|
7
7
|
| **Regression** | [](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/weekly-regression.yaml) |
|
|
8
8
|
| **Documentation** | [](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/weekly-docs.yaml) [](https://codeentropy.readthedocs.io/en/latest/?badge=latest) |
|
|
9
9
|
| **Citation** | [](https://doi.org/10.5281/zenodo.17570721) |
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
{% set name = "codeentropy" %}
|
|
2
2
|
{% set version = "0.0.0" %}
|
|
3
|
+
{% set pyproject = load_file_data("../pyproject.toml", from_recipe_dir=True) %}
|
|
4
|
+
{% set pip_only = namespace(water_entropy="") %}
|
|
5
|
+
{% for dependency in pyproject["project"]["dependencies"] %}
|
|
6
|
+
{% if dependency.startswith("waterEntropy") %}
|
|
7
|
+
{% set pip_only.water_entropy = dependency %}
|
|
8
|
+
{% endif %}
|
|
9
|
+
{% endfor %}
|
|
3
10
|
|
|
4
11
|
package:
|
|
5
12
|
name: {{ name }}
|
|
@@ -12,7 +19,7 @@ build:
|
|
|
12
19
|
noarch: python
|
|
13
20
|
script: |
|
|
14
21
|
python -m pip install . -vv --no-deps
|
|
15
|
-
PIP_NO_INDEX=0 python -m pip install -vv --index-url https://pypi.org/simple "
|
|
22
|
+
PIP_NO_INDEX=0 python -m pip install -vv --index-url https://pypi.org/simple "{{ pip_only.water_entropy }}"
|
|
16
23
|
entry_points:
|
|
17
24
|
- CodeEntropy=CodeEntropy.cli:main
|
|
18
25
|
|
|
@@ -22,21 +29,14 @@ requirements:
|
|
|
22
29
|
- pip
|
|
23
30
|
- flit-core >=4,<5
|
|
24
31
|
run:
|
|
25
|
-
- python
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
- networkx >=2.8,<4.0
|
|
34
|
-
- requests >=2.32.2,<3.0
|
|
35
|
-
- rdkit >=2025.3.4,<2026
|
|
36
|
-
- dask >=2025.4.0,<2027.1.0
|
|
37
|
-
- distributed >=2025.4.0,<2027.1.0
|
|
38
|
-
- dask-jobqueue >=0.9.0,<1.0
|
|
39
|
-
- numba >=0.63.0,<0.70
|
|
32
|
+
- python {{ pyproject["project"]["requires-python"] }}
|
|
33
|
+
{% for dependency in pyproject["project"]["dependencies"] %}
|
|
34
|
+
{% if dependency.startswith("art>") %}
|
|
35
|
+
- python-{{ dependency }}
|
|
36
|
+
{% elif not dependency.startswith("waterEntropy") %}
|
|
37
|
+
- {{ dependency | lower }}
|
|
38
|
+
{% endif %}
|
|
39
|
+
{% endfor %}
|
|
40
40
|
|
|
41
41
|
test:
|
|
42
42
|
imports:
|
|
@@ -167,9 +167,30 @@ Weekly workflows:
|
|
|
167
167
|
|
|
168
168
|
- Full regression suite including slow tests
|
|
169
169
|
- Documentation build across all Python versions
|
|
170
|
+
- Dependency floor checks (see :ref:`dependency-policy`)
|
|
170
171
|
|
|
171
172
|
CI also caches regression datasets to improve performance.
|
|
172
173
|
|
|
174
|
+
.. _dependency-policy:
|
|
175
|
+
|
|
176
|
+
Dependency Policy
|
|
177
|
+
-----------------
|
|
178
|
+
|
|
179
|
+
Runtime dependencies in ``pyproject.toml`` are declared as ranges. The lower
|
|
180
|
+
bound (floor) is the oldest release CodeEntropy is known to work with, so that it
|
|
181
|
+
stays installable alongside other scientific packages. Floors are only raised
|
|
182
|
+
when the code needs a newer release. Upper bounds are widened by Renovate.
|
|
183
|
+
|
|
184
|
+
The unit job in the pull request workflow and the weekly ``dependency-floors.yaml``
|
|
185
|
+
workflow check this. They check that the lowest allowed versions resolve to
|
|
186
|
+
installable wheels on each platform and Python version, and that the unit tests
|
|
187
|
+
pass with them installed.
|
|
188
|
+
|
|
189
|
+
Run the same checks locally with `uv <https://docs.astral.sh/uv/>`_::
|
|
190
|
+
|
|
191
|
+
uv pip install --resolution lowest-direct -e ".[testing]"
|
|
192
|
+
python -m pytest tests/unit
|
|
193
|
+
|
|
173
194
|
Building Documentation
|
|
174
195
|
----------------------
|
|
175
196
|
|
|
@@ -37,21 +37,21 @@ classifiers = [
|
|
|
37
37
|
keywords = ["entropy", "macromolecular systems", "MD simulation"]
|
|
38
38
|
requires-python = ">=3.12"
|
|
39
39
|
dependencies = [
|
|
40
|
-
"numpy>=2.3.
|
|
40
|
+
"numpy>=2.3.5,<2.6.0",
|
|
41
41
|
"mdanalysis>=2.10,<3.0",
|
|
42
42
|
"pandas>=2.3.3,<4.0",
|
|
43
|
-
"psutil>=
|
|
43
|
+
"psutil>=7.1.3,<8.0",
|
|
44
44
|
"PyYAML>=6.0.3,<7.0",
|
|
45
45
|
"rich>=13.0.0,<16.0",
|
|
46
46
|
"art>=5.0,<7.0",
|
|
47
47
|
"networkx>=2.8,<4.0",
|
|
48
48
|
"waterEntropy>=2,<3.0",
|
|
49
49
|
"requests>=2.32.2,<3.0",
|
|
50
|
-
"rdkit>=2025.3.4,<
|
|
50
|
+
"rdkit>=2025.3.4,<2027",
|
|
51
51
|
"numba>=0.63.0,<0.70",
|
|
52
|
-
"dask>=2025.
|
|
52
|
+
"dask>=2025.7.0,<2027.1.0",
|
|
53
53
|
"dask-jobqueue>=0.9.0,<1.0",
|
|
54
|
-
"distributed>=2025.
|
|
54
|
+
"distributed>=2025.7.0,<2027.1.0",
|
|
55
55
|
]
|
|
56
56
|
|
|
57
57
|
[project.urls]
|
{codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/benzaldehyde/axes_off.json
RENAMED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
"0": {
|
|
4
4
|
"components": {
|
|
5
5
|
"united_atom:Transvibrational": 0.06950663196232491,
|
|
6
|
-
"united_atom:Rovibrational": 35.
|
|
7
|
-
"residue:FTmat-Transvibrational": 86.
|
|
8
|
-
"residue:FTmat-Rovibrational": 62.
|
|
6
|
+
"united_atom:Rovibrational": 35.19655714759134,
|
|
7
|
+
"residue:FTmat-Transvibrational": 86.64136384477892,
|
|
8
|
+
"residue:FTmat-Rovibrational": 62.24303760058521,
|
|
9
9
|
"united_atom:Conformational": 0.0,
|
|
10
10
|
"residue:Conformational": 0.0,
|
|
11
11
|
"residue:Orientational": 20.481571492615355
|
|
12
12
|
},
|
|
13
|
-
"total": 204.
|
|
13
|
+
"total": 204.63203671753317
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
"0": {
|
|
4
4
|
"components": {
|
|
5
5
|
"united_atom:Transvibrational": 0.06817494136874551,
|
|
6
|
-
"united_atom:Rovibrational": 49.
|
|
6
|
+
"united_atom:Rovibrational": 49.686697381523516,
|
|
7
7
|
"residue:Transvibrational": 69.25273989458984,
|
|
8
|
-
"residue:Rovibrational": 68.
|
|
8
|
+
"residue:Rovibrational": 68.6481013342223,
|
|
9
9
|
"united_atom:Conformational": 0.0,
|
|
10
10
|
"residue:Conformational": 0.0,
|
|
11
11
|
"residue:Orientational": 20.481571492615355
|
|
12
12
|
},
|
|
13
|
-
"total": 208.
|
|
13
|
+
"total": 208.13728504431975
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
{codeentropy-2.5.0 → codeentropy-2.6.1}/tests/regression/baselines/benzaldehyde/default.json
RENAMED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"groups": {
|
|
3
3
|
"0": {
|
|
4
4
|
"components": {
|
|
5
|
-
"united_atom:Transvibrational": 24.
|
|
6
|
-
"united_atom:Rovibrational": 27.
|
|
7
|
-
"residue:FTmat-Transvibrational": 70.
|
|
5
|
+
"united_atom:Transvibrational": 24.92182210331405,
|
|
6
|
+
"united_atom:Rovibrational": 27.950376507672583,
|
|
7
|
+
"residue:FTmat-Transvibrational": 70.97090266225698,
|
|
8
8
|
"residue:FTmat-Rovibrational": 59.588669973122094,
|
|
9
9
|
"united_atom:Conformational": 7.522643899702263,
|
|
10
10
|
"residue:Conformational": 0.0,
|