chemparseplot 1.9.1__tar.gz → 1.9.2__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 (85) hide show
  1. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/PKG-INFO +1 -1
  2. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/_version.py +2 -2
  3. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/plot/neb.py +23 -9
  4. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/.gitignore +0 -0
  5. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/LICENSE +0 -0
  6. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/__init__.py +0 -0
  7. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/__init__.py +0 -0
  8. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/chemgp_hdf5.py +0 -0
  9. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/chemgp_jsonl.py +0 -0
  10. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/converter.py +0 -0
  11. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/eon/__init__.py +0 -0
  12. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/eon/_trajectory_common.py +0 -0
  13. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/eon/con_io.py +0 -0
  14. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/eon/dimer_trajectory.py +0 -0
  15. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/eon/gprd.py +0 -0
  16. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/eon/min_trajectory.py +0 -0
  17. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/eon/minimization.py +0 -0
  18. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/eon/neb.py +0 -0
  19. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/eon/saddle_search.py +0 -0
  20. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/eon/stitch.py +0 -0
  21. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/file_.py +0 -0
  22. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/neb_utils.py +0 -0
  23. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/orca/__init__.py +0 -0
  24. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/orca/geomscan.py +0 -0
  25. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/orca/neb/__init__.py +0 -0
  26. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/orca/neb/interp.py +0 -0
  27. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/orca/neb/opi_parser.py +0 -0
  28. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/patterns.py +0 -0
  29. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/plumed.py +0 -0
  30. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/projection.py +0 -0
  31. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/sella/saddle_search.py +0 -0
  32. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/trajectory/__init__.py +0 -0
  33. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/trajectory/hdf5.py +0 -0
  34. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/trajectory/neb.py +0 -0
  35. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/parse/types.py +0 -0
  36. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/plot/__init__.py +0 -0
  37. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/plot/chemgp.py +0 -0
  38. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/plot/geomscan.py +0 -0
  39. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/plot/optimization.py +0 -0
  40. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/plot/plumed.py +0 -0
  41. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/plot/structs.py +0 -0
  42. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/plot/theme.py +0 -0
  43. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/units.py +0 -0
  44. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/chemparseplot/util.py +0 -0
  45. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/pyproject.toml +0 -0
  46. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/readme.md +0 -0
  47. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/__init__.py +0 -0
  48. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/_optional_imports.py +0 -0
  49. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/conftest.py +0 -0
  50. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/__init__.py +0 -0
  51. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/_con_fixtures.py +0 -0
  52. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/orca/test_geomscan.py +0 -0
  53. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/orca/test_interp.py +0 -0
  54. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_chemgp_hdf5.py +0 -0
  55. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_chemgp_jsonl_types.py +0 -0
  56. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_con_io.py +0 -0
  57. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_converter.py +0 -0
  58. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_dimer_trajectory.py +0 -0
  59. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_eon_neb_types.py +0 -0
  60. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_eon_trajectory_common.py +0 -0
  61. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_min_trajectory.py +0 -0
  62. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_minimization_result.py +0 -0
  63. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_neb_stitch.py +0 -0
  64. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_neb_utils.py +0 -0
  65. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_parser_types.py +0 -0
  66. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_patterns.py +0 -0
  67. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_plumed.py +0 -0
  68. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_projection.py +0 -0
  69. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_readcon_boundary.py +0 -0
  70. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_saddle_results.py +0 -0
  71. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_sella_saddle.py +0 -0
  72. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_trajectory_hdf5.py +0 -0
  73. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/parse/test_trajectory_neb.py +0 -0
  74. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/plot/__init__.py +0 -0
  75. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/plot/test_chemgp_utils.py +0 -0
  76. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/plot/test_neb_helpers.py +0 -0
  77. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/plot/test_neb_renderers.py +0 -0
  78. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/plot/test_optimization.py +0 -0
  79. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/plot/test_orca_neb_payload.py +0 -0
  80. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/plot/test_projection_refactor.py +0 -0
  81. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/plot/test_strip_rendering.py +0 -0
  82. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/plot/test_structs_units.py +0 -0
  83. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/test_coverage_batch.py +0 -0
  84. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/tests/test_full_coverage.py +0 -0
  85. {chemparseplot-1.9.1 → chemparseplot-1.9.2}/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.1
3
+ Version: 1.9.2
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.1'
22
- __version_tuple__ = version_tuple = (1, 9, 1)
21
+ __version__ = version = '1.9.2'
22
+ __version_tuple__ = version_tuple = (1, 9, 2)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1592,12 +1592,19 @@ def landscape_half_span(x_limits, final_r, final_p, additional_atoms_data, globa
1592
1592
 
1593
1593
 
1594
1594
  def save_plot(output_file, dpi, *, has_strip):
1595
- """Save plots without tight-bbox strip overflow."""
1596
-
1597
- save_kwargs = {"transparent": False, "pad_inches": 0.1, "dpi": dpi}
1598
- if not has_strip:
1599
- save_kwargs["bbox_inches"] = "tight"
1600
- plt.savefig(output_file, **save_kwargs)
1595
+ """Save plots, cropping unused figure canvas (including strip layouts)."""
1596
+
1597
+ # Strips use imshow+Text (not unclipped AnnotationBbox growth), so tight
1598
+ # bbox is safe and removes the large whitespace left by equal-aspect
1599
+ # landscape axes inside a tall/wide figure.
1600
+ del has_strip # kept for API compatibility with callers
1601
+ plt.savefig(
1602
+ output_file,
1603
+ transparent=False,
1604
+ dpi=dpi,
1605
+ bbox_inches="tight",
1606
+ pad_inches=0.12,
1607
+ )
1601
1608
 
1602
1609
 
1603
1610
  def profile_structure_indices(atoms_list, y_values, plot_structures, plot_mode):
@@ -1617,15 +1624,22 @@ def profile_strip_payload(atoms_list, x_values, y_values, plot_structures, plot_
1617
1624
  """Build an ordered strip payload for profile plots."""
1618
1625
 
1619
1626
  payload = []
1627
+ saddle_idx = (
1628
+ int(np.argmax(y_values[1:-1]) + 1)
1629
+ if plot_mode == "energy" and len(y_values) > 2
1630
+ else int(np.argmin(y_values))
1631
+ )
1620
1632
  for index in profile_structure_indices(
1621
1633
  atoms_list, y_values, plot_structures, plot_mode
1622
1634
  ):
1623
- if plot_structures == "all":
1624
- label = str(index)
1625
- elif index == 0:
1635
+ if index == 0:
1626
1636
  label = "R"
1627
1637
  elif index == len(atoms_list) - 1:
1628
1638
  label = "P"
1639
+ elif index == saddle_idx:
1640
+ label = "SP"
1641
+ elif plot_structures == "all":
1642
+ label = str(index)
1629
1643
  else:
1630
1644
  label = "SP"
1631
1645
  payload.append(
File without changes
File without changes
File without changes