chemparseplot 1.9.15__tar.gz → 1.9.16__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 (103) hide show
  1. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/PKG-INFO +1 -1
  2. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/_version.py +2 -2
  3. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/plot/test_neb_renderers.py +53 -0
  4. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/.gitignore +0 -0
  5. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/LICENSE +0 -0
  6. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/__init__.py +0 -0
  7. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/api.py +0 -0
  8. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/__init__.py +0 -0
  9. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/chemgp_hdf5.py +0 -0
  10. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/chemgp_jsonl.py +0 -0
  11. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/converter.py +0 -0
  12. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/eon/__init__.py +0 -0
  13. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/eon/_trajectory_common.py +0 -0
  14. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/eon/con_io.py +0 -0
  15. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/eon/dimer_trajectory.py +0 -0
  16. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/eon/frame_series.py +0 -0
  17. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/eon/gprd.py +0 -0
  18. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/eon/min_trajectory.py +0 -0
  19. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/eon/minimization.py +0 -0
  20. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/eon/neb.py +0 -0
  21. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/eon/saddle_search.py +0 -0
  22. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/eon/stitch.py +0 -0
  23. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/file_.py +0 -0
  24. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/grammar/__init__.py +0 -0
  25. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/grammar/_deps.py +0 -0
  26. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/grammar/orca_text.py +0 -0
  27. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/grammar/xyz.py +0 -0
  28. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/neb_utils.py +0 -0
  29. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/orca/__init__.py +0 -0
  30. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/orca/_opi.py +0 -0
  31. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/orca/geomscan.py +0 -0
  32. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/orca/neb/__init__.py +0 -0
  33. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/orca/neb/interp.py +0 -0
  34. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/orca/neb/opi_parser.py +0 -0
  35. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/patterns.py +0 -0
  36. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/plumed.py +0 -0
  37. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/projection.py +0 -0
  38. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/sella/saddle_search.py +0 -0
  39. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/trajectory/__init__.py +0 -0
  40. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/trajectory/hdf5.py +0 -0
  41. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/trajectory/neb.py +0 -0
  42. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/parse/types.py +0 -0
  43. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/plot/__init__.py +0 -0
  44. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/plot/chemgp.py +0 -0
  45. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/plot/geomscan.py +0 -0
  46. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/plot/neb.py +0 -0
  47. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/plot/optimization.py +0 -0
  48. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/plot/plumed.py +0 -0
  49. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/plot/structs.py +0 -0
  50. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/plot/theme.py +0 -0
  51. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/units.py +0 -0
  52. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/chemparseplot/util.py +0 -0
  53. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/pyproject.toml +0 -0
  54. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/readme.md +0 -0
  55. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/__init__.py +0 -0
  56. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/_optional_imports.py +0 -0
  57. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/conftest.py +0 -0
  58. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/fixtures/h2mol.xyz +0 -0
  59. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/fixtures/orca_energy_coords_snippet.out +0 -0
  60. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/fixtures_geomscan_snippet.txt +0 -0
  61. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/__init__.py +0 -0
  62. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/_con_fixtures.py +0 -0
  63. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/grammar/__init__.py +0 -0
  64. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/grammar/test_grammar_deps.py +0 -0
  65. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/grammar/test_orca_text_grammar.py +0 -0
  66. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/grammar/test_xyz_grammar.py +0 -0
  67. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/orca/test_geomscan.py +0 -0
  68. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/orca/test_interp.py +0 -0
  69. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_chemgp_hdf5.py +0 -0
  70. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_chemgp_jsonl_types.py +0 -0
  71. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_con_io.py +0 -0
  72. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_converter.py +0 -0
  73. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_dimer_trajectory.py +0 -0
  74. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_eon_neb_types.py +0 -0
  75. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_eon_trajectory_common.py +0 -0
  76. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_frame_series.py +0 -0
  77. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_min_trajectory.py +0 -0
  78. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_minimization_result.py +0 -0
  79. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_neb_stitch.py +0 -0
  80. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_neb_utils.py +0 -0
  81. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_orca_public_api.py +0 -0
  82. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_parser_types.py +0 -0
  83. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_patterns.py +0 -0
  84. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_plumed.py +0 -0
  85. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_projection.py +0 -0
  86. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_readcon_boundary.py +0 -0
  87. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_saddle_results.py +0 -0
  88. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_sella_saddle.py +0 -0
  89. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_trajectory_hdf5.py +0 -0
  90. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/parse/test_trajectory_neb.py +0 -0
  91. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/plot/__init__.py +0 -0
  92. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/plot/test_chemgp_utils.py +0 -0
  93. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/plot/test_neb_helpers.py +0 -0
  94. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/plot/test_optimization.py +0 -0
  95. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/plot/test_orca_neb_payload.py +0 -0
  96. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/plot/test_projection_refactor.py +0 -0
  97. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/plot/test_strip_rendering.py +0 -0
  98. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/plot/test_structs_units.py +0 -0
  99. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/plot/test_surface_auto_thin.py +0 -0
  100. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/test_coverage_batch.py +0 -0
  101. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/test_full_coverage.py +0 -0
  102. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/test_public_api.py +0 -0
  103. {chemparseplot-1.9.15 → chemparseplot-1.9.16}/tests/tutorials/test_chemparseplot.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: chemparseplot
3
- Version: 1.9.15
3
+ Version: 1.9.16
4
4
  Summary: Parsers and plotting tools for computational chemistry
5
5
  Project-URL: Documentation, https://chemparseplot.rgoswami.me
6
6
  Project-URL: Issues, https://github.com/HaoZeke/chemparseplot/issues
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.9.15'
22
- __version_tuple__ = version_tuple = (1, 9, 15)
21
+ __version__ = version = '1.9.16'
22
+ __version_tuple__ = version_tuple = (1, 9, 16)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -91,3 +91,56 @@ class TestPlotStructureStripRendererParam:
91
91
  assert mock_render.call_count == len(atoms_list)
92
92
 
93
93
  plt.close("all")
94
+
95
+
96
+ class TestXyzrenderCliApiParity:
97
+ """CLI and Python API must match for the same xyzrender version."""
98
+
99
+ def test_cli_python_api_parity(self, water, tmp_path):
100
+ import importlib.util
101
+ import subprocess
102
+
103
+ pytest.importorskip("xyzrender")
104
+ cli = shutil.which("xyzrender")
105
+ if cli is None:
106
+ pytest.skip("xyzrender console script not on PATH")
107
+ # same package as importable xyzrender
108
+ import xyzrender
109
+
110
+ # write shared geometry
111
+ from ase.io import write as ase_write
112
+
113
+ xyz = tmp_path / "w.xyz"
114
+ png_cli = tmp_path / "cli.png"
115
+ ase_write(str(xyz), water, format="xyz")
116
+ subprocess.run(
117
+ [
118
+ cli,
119
+ str(xyz),
120
+ "-o",
121
+ str(png_cli),
122
+ "-S",
123
+ "200",
124
+ "--config",
125
+ "paton",
126
+ "--hy",
127
+ "-t",
128
+ ],
129
+ check=True,
130
+ capture_output=True,
131
+ )
132
+ img_cli = plt.imread(png_cli)
133
+ img_api = _render_xyzrender(water, canvas_size=200, config="paton")
134
+ a = np.asarray(img_cli, dtype=float)
135
+ b = np.asarray(img_api, dtype=float)
136
+ if a.max() > 1.5:
137
+ a = a / 255.0
138
+ if b.max() > 1.5:
139
+ b = b / 255.0
140
+ if a.shape[-1] == 3:
141
+ a = np.concatenate([a, np.ones(a.shape[:2] + (1,))], axis=-1)
142
+ if b.shape[-1] == 3:
143
+ b = np.concatenate([b, np.ones(b.shape[:2] + (1,))], axis=-1)
144
+ assert a.shape == b.shape, (a.shape, b.shape)
145
+ # bit-identical for same xyzrender version
146
+ np.testing.assert_allclose(a, b, atol=1e-5, rtol=0)
File without changes
File without changes