chemparseplot 1.9.2__tar.gz → 1.9.3__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.
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/PKG-INFO +1 -1
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/_version.py +2 -2
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/plot/neb.py +78 -10
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/.gitignore +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/LICENSE +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/__init__.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/__init__.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/chemgp_hdf5.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/chemgp_jsonl.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/converter.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/eon/__init__.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/eon/_trajectory_common.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/eon/con_io.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/eon/dimer_trajectory.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/eon/gprd.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/eon/min_trajectory.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/eon/minimization.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/eon/neb.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/eon/saddle_search.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/eon/stitch.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/file_.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/neb_utils.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/orca/__init__.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/orca/geomscan.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/orca/neb/__init__.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/orca/neb/interp.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/orca/neb/opi_parser.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/patterns.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/plumed.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/projection.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/sella/saddle_search.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/trajectory/__init__.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/trajectory/hdf5.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/trajectory/neb.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/parse/types.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/plot/__init__.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/plot/chemgp.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/plot/geomscan.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/plot/optimization.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/plot/plumed.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/plot/structs.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/plot/theme.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/units.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/chemparseplot/util.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/pyproject.toml +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/readme.md +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/__init__.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/_optional_imports.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/conftest.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/__init__.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/_con_fixtures.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/orca/test_geomscan.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/orca/test_interp.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_chemgp_hdf5.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_chemgp_jsonl_types.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_con_io.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_converter.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_dimer_trajectory.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_eon_neb_types.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_eon_trajectory_common.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_min_trajectory.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_minimization_result.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_neb_stitch.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_neb_utils.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_parser_types.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_patterns.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_plumed.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_projection.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_readcon_boundary.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_saddle_results.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_sella_saddle.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_trajectory_hdf5.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/parse/test_trajectory_neb.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/plot/__init__.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/plot/test_chemgp_utils.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/plot/test_neb_helpers.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/plot/test_neb_renderers.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/plot/test_optimization.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/plot/test_orca_neb_payload.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/plot/test_projection_refactor.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/plot/test_strip_rendering.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/plot/test_structs_units.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/test_coverage_batch.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/tests/test_full_coverage.py +0 -0
- {chemparseplot-1.9.2 → chemparseplot-1.9.3}/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
|
+
Version: 1.9.3
|
|
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.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 9,
|
|
21
|
+
__version__ = version = '1.9.3'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 9, 3)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -1577,18 +1577,86 @@ def landscape_projection_basis(global_basis, final_r, final_p):
|
|
|
1577
1577
|
return compute_projection_basis(final_r, final_p)
|
|
1578
1578
|
|
|
1579
1579
|
|
|
1580
|
-
def landscape_half_span(
|
|
1581
|
-
|
|
1580
|
+
def landscape_half_span(
|
|
1581
|
+
x_limits,
|
|
1582
|
+
final_r,
|
|
1583
|
+
final_p,
|
|
1584
|
+
additional_atoms_data,
|
|
1585
|
+
global_basis,
|
|
1586
|
+
*,
|
|
1587
|
+
path_pad: float = 1.15,
|
|
1588
|
+
min_half: float = 0.02,
|
|
1589
|
+
):
|
|
1590
|
+
"""Symmetric |d| half-span from the path (and optional overlays), not s/2.
|
|
1582
1591
|
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
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``.
|
|
1594
|
+
"""
|
|
1586
1595
|
|
|
1587
1596
|
basis = landscape_projection_basis(global_basis, final_r, final_p)
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1597
|
+
_s, _d = project_to_sd(np.asarray(final_r), np.asarray(final_p), basis)
|
|
1598
|
+
half_span = max(abs(float(_d.max())), abs(float(_d.min())), min_half) * path_pad
|
|
1599
|
+
for overlay in additional_atoms_data or []:
|
|
1600
|
+
_, add_d = project_to_sd(
|
|
1601
|
+
np.array([overlay.r]), np.array([overlay.p]), basis
|
|
1602
|
+
)
|
|
1603
|
+
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
|
|
1607
|
+
return max(half_span, min_half)
|
|
1608
|
+
|
|
1609
|
+
|
|
1610
|
+
def mark_saddle_point(
|
|
1611
|
+
ax,
|
|
1612
|
+
x,
|
|
1613
|
+
y,
|
|
1614
|
+
*,
|
|
1615
|
+
label: str = "SP",
|
|
1616
|
+
font_size: float = 12.0,
|
|
1617
|
+
vline: bool = False,
|
|
1618
|
+
annotate: bool = True,
|
|
1619
|
+
):
|
|
1620
|
+
"""Draw a high-contrast saddle marker (gold star) on a profile or landscape."""
|
|
1621
|
+
|
|
1622
|
+
ax.scatter(
|
|
1623
|
+
float(x),
|
|
1624
|
+
float(y),
|
|
1625
|
+
marker="*",
|
|
1626
|
+
s=max(280, int(font_size**2 * 3.2)),
|
|
1627
|
+
c="#FFD700",
|
|
1628
|
+
edgecolors="black",
|
|
1629
|
+
linewidths=1.8,
|
|
1630
|
+
zorder=100,
|
|
1631
|
+
label=label,
|
|
1632
|
+
)
|
|
1633
|
+
if vline:
|
|
1634
|
+
ax.axvline(
|
|
1635
|
+
float(x),
|
|
1636
|
+
color="black",
|
|
1637
|
+
linestyle="--",
|
|
1638
|
+
linewidth=1.4,
|
|
1639
|
+
alpha=0.75,
|
|
1640
|
+
zorder=50,
|
|
1641
|
+
)
|
|
1642
|
+
if annotate:
|
|
1643
|
+
ax.annotate(
|
|
1644
|
+
label,
|
|
1645
|
+
xy=(float(x), float(y)),
|
|
1646
|
+
xytext=(10, 14),
|
|
1647
|
+
textcoords="offset points",
|
|
1648
|
+
fontsize=int(font_size * 1.05),
|
|
1649
|
+
fontweight="bold",
|
|
1650
|
+
color="black",
|
|
1651
|
+
zorder=101,
|
|
1652
|
+
bbox={
|
|
1653
|
+
"boxstyle": "round,pad=0.2",
|
|
1654
|
+
"facecolor": "white",
|
|
1655
|
+
"edgecolor": "black",
|
|
1656
|
+
"linewidth": 0.8,
|
|
1657
|
+
"alpha": 0.92,
|
|
1658
|
+
},
|
|
1659
|
+
)
|
|
1592
1660
|
|
|
1593
1661
|
|
|
1594
1662
|
def save_plot(output_file, dpi, *, has_strip):
|
|
@@ -1603,7 +1671,7 @@ def save_plot(output_file, dpi, *, has_strip):
|
|
|
1603
1671
|
transparent=False,
|
|
1604
1672
|
dpi=dpi,
|
|
1605
1673
|
bbox_inches="tight",
|
|
1606
|
-
pad_inches=0.
|
|
1674
|
+
pad_inches=0.05,
|
|
1607
1675
|
)
|
|
1608
1676
|
|
|
1609
1677
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|