chemparseplot 1.9.3__tar.gz → 1.9.5__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.3 → chemparseplot-1.9.5}/PKG-INFO +1 -1
  2. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/_version.py +2 -2
  3. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/plot/neb.py +17 -8
  4. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/.gitignore +0 -0
  5. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/LICENSE +0 -0
  6. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/__init__.py +0 -0
  7. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/__init__.py +0 -0
  8. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/chemgp_hdf5.py +0 -0
  9. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/chemgp_jsonl.py +0 -0
  10. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/converter.py +0 -0
  11. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/eon/__init__.py +0 -0
  12. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/eon/_trajectory_common.py +0 -0
  13. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/eon/con_io.py +0 -0
  14. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/eon/dimer_trajectory.py +0 -0
  15. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/eon/gprd.py +0 -0
  16. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/eon/min_trajectory.py +0 -0
  17. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/eon/minimization.py +0 -0
  18. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/eon/neb.py +0 -0
  19. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/eon/saddle_search.py +0 -0
  20. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/eon/stitch.py +0 -0
  21. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/file_.py +0 -0
  22. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/neb_utils.py +0 -0
  23. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/orca/__init__.py +0 -0
  24. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/orca/geomscan.py +0 -0
  25. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/orca/neb/__init__.py +0 -0
  26. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/orca/neb/interp.py +0 -0
  27. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/orca/neb/opi_parser.py +0 -0
  28. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/patterns.py +0 -0
  29. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/plumed.py +0 -0
  30. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/projection.py +0 -0
  31. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/sella/saddle_search.py +0 -0
  32. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/trajectory/__init__.py +0 -0
  33. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/trajectory/hdf5.py +0 -0
  34. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/trajectory/neb.py +0 -0
  35. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/parse/types.py +0 -0
  36. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/plot/__init__.py +0 -0
  37. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/plot/chemgp.py +0 -0
  38. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/plot/geomscan.py +0 -0
  39. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/plot/optimization.py +0 -0
  40. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/plot/plumed.py +0 -0
  41. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/plot/structs.py +0 -0
  42. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/plot/theme.py +0 -0
  43. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/units.py +0 -0
  44. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/chemparseplot/util.py +0 -0
  45. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/pyproject.toml +0 -0
  46. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/readme.md +0 -0
  47. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/__init__.py +0 -0
  48. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/_optional_imports.py +0 -0
  49. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/conftest.py +0 -0
  50. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/__init__.py +0 -0
  51. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/_con_fixtures.py +0 -0
  52. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/orca/test_geomscan.py +0 -0
  53. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/orca/test_interp.py +0 -0
  54. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_chemgp_hdf5.py +0 -0
  55. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_chemgp_jsonl_types.py +0 -0
  56. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_con_io.py +0 -0
  57. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_converter.py +0 -0
  58. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_dimer_trajectory.py +0 -0
  59. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_eon_neb_types.py +0 -0
  60. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_eon_trajectory_common.py +0 -0
  61. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_min_trajectory.py +0 -0
  62. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_minimization_result.py +0 -0
  63. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_neb_stitch.py +0 -0
  64. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_neb_utils.py +0 -0
  65. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_parser_types.py +0 -0
  66. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_patterns.py +0 -0
  67. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_plumed.py +0 -0
  68. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_projection.py +0 -0
  69. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_readcon_boundary.py +0 -0
  70. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_saddle_results.py +0 -0
  71. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_sella_saddle.py +0 -0
  72. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_trajectory_hdf5.py +0 -0
  73. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/parse/test_trajectory_neb.py +0 -0
  74. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/plot/__init__.py +0 -0
  75. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/plot/test_chemgp_utils.py +0 -0
  76. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/plot/test_neb_helpers.py +0 -0
  77. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/plot/test_neb_renderers.py +0 -0
  78. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/plot/test_optimization.py +0 -0
  79. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/plot/test_orca_neb_payload.py +0 -0
  80. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/plot/test_projection_refactor.py +0 -0
  81. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/plot/test_strip_rendering.py +0 -0
  82. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/plot/test_structs_units.py +0 -0
  83. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/test_coverage_batch.py +0 -0
  84. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/tests/test_full_coverage.py +0 -0
  85. {chemparseplot-1.9.3 → chemparseplot-1.9.5}/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.3
3
+ Version: 1.9.5
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.3'
22
- __version_tuple__ = version_tuple = (1, 9, 3)
21
+ __version__ = version = '1.9.5'
22
+ __version_tuple__ = version_tuple = (1, 9, 5)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1362,8 +1362,12 @@ def plot_landscape_path_overlay(
1362
1362
  )
1363
1363
 
1364
1364
  cb = ax.figure.colorbar(
1365
- plt.cm.ScalarMappable(norm=norm, cmap=colormap), ax=ax, label=z_label
1365
+ plt.cm.ScalarMappable(norm=norm, cmap=colormap),
1366
+ ax=ax,
1367
+ fraction=0.046,
1368
+ pad=0.02,
1366
1369
  )
1370
+ cb.set_label(z_label, rotation=270, labelpad=16)
1367
1371
  return cb
1368
1372
 
1369
1373
 
@@ -1586,11 +1590,14 @@ def landscape_half_span(
1586
1590
  *,
1587
1591
  path_pad: float = 1.15,
1588
1592
  min_half: float = 0.02,
1593
+ equal_metric: bool = True,
1589
1594
  ):
1590
- """Symmetric |d| half-span from the path (and optional overlays), not s/2.
1595
+ """Symmetric |d| half-span for a projected (s, d) landscape.
1591
1596
 
1592
- Using the reaction-progress half-width as the default forced a near-square
1593
- frame and large empty bands above/below paths that stay near ``d=0``.
1597
+ With ``equal_metric=True`` (default), the half-span is at least half the
1598
+ *s* window so that ``Δs = Δd`` and ``set_aspect('equal')`` yields a square
1599
+ panel where 1 Å of progress matches 1 Å of orthogonal deviation (same RMSD
1600
+ metric). Path/overlay markers still expand the span when they exceed that.
1594
1601
  """
1595
1602
 
1596
1603
  basis = landscape_projection_basis(global_basis, final_r, final_p)
@@ -1601,9 +1608,9 @@ def landscape_half_span(
1601
1608
  np.array([overlay.r]), np.array([overlay.p]), basis
1602
1609
  )
1603
1610
  half_span = max(half_span, abs(float(add_d[0])) * path_pad)
1604
- # Tiny floor only (absolute), never a fraction of s — that reintroduced the
1605
- # empty top/bottom bands on near-linear paths.
1606
- del x_limits # reserved for future asymmetric s handling
1611
+ if equal_metric and x_limits is not None:
1612
+ s_half = 0.5 * max(float(x_limits[1] - x_limits[0]), 1e-9)
1613
+ half_span = max(half_span, s_half)
1607
1614
  return max(half_span, min_half)
1608
1615
 
1609
1616
 
@@ -1671,7 +1678,9 @@ def save_plot(output_file, dpi, *, has_strip):
1671
1678
  transparent=False,
1672
1679
  dpi=dpi,
1673
1680
  bbox_inches="tight",
1674
- pad_inches=0.05,
1681
+ # Enough pad for vertical axis labels / colorbar titles on equal-aspect
1682
+ # (s,d) landscapes; still crops large empty canvas from the figure.
1683
+ pad_inches=0.25,
1675
1684
  )
1676
1685
 
1677
1686
 
File without changes
File without changes
File without changes