chemparseplot 1.5.1__tar.gz → 1.5.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 (64) hide show
  1. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/PKG-INFO +1 -1
  2. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/_version.py +2 -2
  3. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/plot/neb.py +23 -14
  4. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/.gitignore +0 -0
  5. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/LICENSE +0 -0
  6. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/__init__.py +0 -0
  7. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/__init__.py +0 -0
  8. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/chemgp_hdf5.py +0 -0
  9. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/chemgp_jsonl.py +0 -0
  10. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/converter.py +0 -0
  11. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/eon/__init__.py +0 -0
  12. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/eon/dimer_trajectory.py +0 -0
  13. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/eon/gprd.py +0 -0
  14. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/eon/min_trajectory.py +0 -0
  15. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/eon/minimization.py +0 -0
  16. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/eon/neb.py +0 -0
  17. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/eon/saddle_search.py +0 -0
  18. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/file_.py +0 -0
  19. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/neb_utils.py +0 -0
  20. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/orca/__init__.py +0 -0
  21. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/orca/geomscan.py +0 -0
  22. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/orca/neb/__init__.py +0 -0
  23. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/orca/neb/interp.py +0 -0
  24. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/orca/neb/opi_parser.py +0 -0
  25. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/patterns.py +0 -0
  26. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/plumed.py +0 -0
  27. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/projection.py +0 -0
  28. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/sella/saddle_search.py +0 -0
  29. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/trajectory/__init__.py +0 -0
  30. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/trajectory/hdf5.py +0 -0
  31. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/parse/trajectory/neb.py +0 -0
  32. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/plot/__init__.py +0 -0
  33. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/plot/chemgp.py +0 -0
  34. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/plot/geomscan.py +0 -0
  35. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/plot/optimization.py +0 -0
  36. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/plot/plumed.py +0 -0
  37. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/plot/structs.py +0 -0
  38. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/plot/theme.py +0 -0
  39. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/units.py +0 -0
  40. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/chemparseplot/util.py +0 -0
  41. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/pyproject.toml +0 -0
  42. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/readme.md +0 -0
  43. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/conftest.py +0 -0
  44. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/parse/orca/test_geomscan.py +0 -0
  45. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/parse/orca/test_interp.py +0 -0
  46. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/parse/test_chemgp_hdf5.py +0 -0
  47. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/parse/test_converter.py +0 -0
  48. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/parse/test_dimer_trajectory.py +0 -0
  49. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/parse/test_min_trajectory.py +0 -0
  50. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/parse/test_neb_utils.py +0 -0
  51. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/parse/test_patterns.py +0 -0
  52. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/parse/test_plumed.py +0 -0
  53. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/parse/test_projection.py +0 -0
  54. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/parse/test_trajectory_hdf5.py +0 -0
  55. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/parse/test_trajectory_neb.py +0 -0
  56. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/plot/__init__.py +0 -0
  57. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/plot/test_chemgp_utils.py +0 -0
  58. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/plot/test_neb_renderers.py +0 -0
  59. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/plot/test_optimization.py +0 -0
  60. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/plot/test_projection_refactor.py +0 -0
  61. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/plot/test_strip_rendering.py +0 -0
  62. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/test_coverage_batch.py +0 -0
  63. {chemparseplot-1.5.1 → chemparseplot-1.5.2}/tests/test_full_coverage.py +0 -0
  64. {chemparseplot-1.5.1 → chemparseplot-1.5.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.5.1
3
+ Version: 1.5.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
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '1.5.1'
32
- __version_tuple__ = version_tuple = (1, 5, 1)
31
+ __version__ = version = '1.5.2'
32
+ __version_tuple__ = version_tuple = (1, 5, 2)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -757,6 +757,8 @@ def plot_landscape_surface(
757
757
  project_path=True, # noqa: FBT002
758
758
  extra_points=None,
759
759
  n_inducing=None,
760
+ xlim=None,
761
+ ylim=None,
760
762
  ) -> Any:
761
763
  """Plot the 2D landscape surface using reaction valley projection.
762
764
 
@@ -782,23 +784,30 @@ def plot_landscape_surface(
782
784
  # --- 1. Grid Setup (Handles both Projection and Standard RMSD) ---
783
785
  if project_path:
784
786
  s_data, d_data = project_to_sd(rmsd_r, rmsd_p, basis)
785
- s_min, s_max = s_data.min(), s_data.max()
786
- d_min, d_max = d_data.min(), d_data.max()
787
787
 
788
- if extra_points is not None and len(extra_points) > 0:
789
- extra_s, extra_d = project_to_sd(
790
- extra_points[:, 0], extra_points[:, 1], basis
788
+ if xlim is not None and ylim is not None:
789
+ # Caller pre-computed the viewport -- build grid to match exactly
790
+ xg_1d = np.linspace(xlim[0], xlim[1], 150)
791
+ yg_1d = np.linspace(ylim[0], ylim[1], 150)
792
+ else:
793
+ s_min, s_max = s_data.min(), s_data.max()
794
+ d_min, d_max = d_data.min(), d_data.max()
795
+
796
+ if extra_points is not None and len(extra_points) > 0:
797
+ extra_s, extra_d = project_to_sd(
798
+ extra_points[:, 0], extra_points[:, 1], basis
799
+ )
800
+ s_min, s_max = min(s_min, extra_s.min()), max(s_max, extra_s.max())
801
+ d_min, d_max = min(d_min, extra_d.min()), max(d_max, extra_d.max())
802
+
803
+ xg_1d = np.linspace(
804
+ s_min - (s_max - s_min) * 0.1, s_max + (s_max - s_min) * 0.1, 150
791
805
  )
792
- s_min, s_max = min(s_min, extra_s.min()), max(s_max, extra_s.max())
793
- d_min, d_max = min(d_min, extra_d.min()), max(d_max, extra_d.max())
806
+ # Y-grid: same span as X (preserves aspect=equal), centered on 0
807
+ x_span = xg_1d.max() - xg_1d.min()
808
+ y_half = x_span / 2
809
+ yg_1d = np.linspace(-y_half, y_half, 150)
794
810
 
795
- xg_1d = np.linspace(
796
- s_min - (s_max - s_min) * 0.1, s_max + (s_max - s_min) * 0.1, 150
797
- )
798
- # Y-grid: same span as X (preserves aspect=equal), centered at 0
799
- x_span = xg_1d.max() - xg_1d.min()
800
- y_half = x_span / 2
801
- yg_1d = np.linspace(-y_half, y_half, 150)
802
811
  xg, yg = np.meshgrid(xg_1d, yg_1d)
803
812
  else:
804
813
  r_min, r_max = rmsd_r.min(), rmsd_r.max()
File without changes
File without changes
File without changes