chemparseplot 0.1.0__tar.gz → 1.1.0__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-0.1.0 → chemparseplot-1.1.0}/.gitignore +1 -0
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/PKG-INFO +35 -14
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/_version.py +2 -2
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/__init__.py +1 -1
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/parse/eon/minimization.py +1 -1
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/parse/eon/saddle_search.py +7 -7
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/parse/orca/neb/interp.py +1 -1
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/parse/sella/saddle_search.py +1 -1
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/plot/geomscan.py +1 -1
- chemparseplot-1.1.0/chemparseplot/plot/neb.py +534 -0
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/plot/structs.py +1 -1
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/util.py +1 -1
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/pyproject.toml +17 -31
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/readme.md +27 -11
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/tests/parse/orca/test_interp.py +1 -1
- chemparseplot-0.1.0/chemparseplot/analyze/dist.py +0 -130
- chemparseplot-0.1.0/chemparseplot/analyze/use_ira.py +0 -73
- chemparseplot-0.1.0/chemparseplot/basetypes.py +0 -90
- chemparseplot-0.1.0/chemparseplot/plot/_aids.py +0 -9
- chemparseplot-0.1.0/chemparseplot/plot/_surfaces.py +0 -896
- chemparseplot-0.1.0/chemparseplot/plot/neb.py +0 -541
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/LICENSE +0 -0
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/parse/__init__.py +0 -0
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/parse/converter.py +0 -0
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/parse/eon/gprd.py +0 -0
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/parse/eon/neb.py +0 -0
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/parse/file_.py +0 -0
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/parse/orca/__init__.py +0 -0
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/parse/orca/geomscan.py +0 -0
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/parse/patterns.py +0 -0
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/plot/__init__.py +0 -0
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/plot/theme.py +0 -0
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/chemparseplot/units.py +0 -0
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/tests/parse/orca/test_geomscan.py +0 -0
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/tests/parse/test_converter.py +0 -0
- {chemparseplot-0.1.0 → chemparseplot-1.1.0}/tests/parse/test_patterns.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: chemparseplot
|
|
3
|
-
Version:
|
|
3
|
+
Version: 1.1.0
|
|
4
4
|
Summary: Parsers and plotting tools for computational chemistry
|
|
5
5
|
Project-URL: Documentation, https://github.com/HaoZeke/chemparseplot#readme
|
|
6
6
|
Project-URL: Issues, https://github.com/HaoZeke/chemparseplot/issues
|
|
@@ -12,14 +12,14 @@ Keywords: compchem,parser,plot
|
|
|
12
12
|
Classifier: Development Status :: 4 - Beta
|
|
13
13
|
Classifier: Programming Language :: Python
|
|
14
14
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.10
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
18
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
20
|
-
Requires-Python: >=3.
|
|
19
|
+
Requires-Python: >=3.10
|
|
21
20
|
Requires-Dist: numpy>=1.26.2
|
|
22
21
|
Requires-Dist: pint>=0.22
|
|
22
|
+
Requires-Dist: rgpycrumbs>=1.1.0
|
|
23
23
|
Provides-Extra: doc
|
|
24
24
|
Requires-Dist: mdit-py-plugins>=0.3.4; extra == 'doc'
|
|
25
25
|
Requires-Dist: myst-nb>=1; extra == 'doc'
|
|
@@ -31,22 +31,29 @@ Requires-Dist: sphinx-sitemap>=2.5.1; extra == 'doc'
|
|
|
31
31
|
Requires-Dist: sphinx-togglebutton>=0.3.2; extra == 'doc'
|
|
32
32
|
Requires-Dist: sphinx>=7.2.6; extra == 'doc'
|
|
33
33
|
Requires-Dist: sphinxcontrib-apidoc>=0.4; extra == 'doc'
|
|
34
|
+
Provides-Extra: lint
|
|
35
|
+
Requires-Dist: ruff>=0.1.6; extra == 'lint'
|
|
34
36
|
Provides-Extra: plot
|
|
35
37
|
Requires-Dist: cmcrameri>=1.7; extra == 'plot'
|
|
36
38
|
Requires-Dist: matplotlib>=3.8.2; extra == 'plot'
|
|
39
|
+
Provides-Extra: test
|
|
40
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == 'test'
|
|
41
|
+
Requires-Dist: pytest>=7.4.3; extra == 'test'
|
|
37
42
|
Description-Content-Type: text/markdown
|
|
38
43
|
|
|
39
44
|
|
|
40
45
|
# Table of Contents
|
|
41
46
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
+
- [About](#org1aaacbd)
|
|
48
|
+
- [Ecosystem Overview](#org86a8ea7)
|
|
49
|
+
- [Features](#org2d23f41)
|
|
50
|
+
- [Supported Engines [WIP]](#orgd14b359)
|
|
51
|
+
- [Rationale](#orgd89d807)
|
|
52
|
+
- [License](#orgef56819)
|
|
47
53
|
|
|
48
54
|
|
|
49
|
-
|
|
55
|
+
|
|
56
|
+
<a id="org1aaacbd"></a>
|
|
50
57
|
|
|
51
58
|
# About
|
|
52
59
|
|
|
@@ -57,15 +64,29 @@ Description-Content-Type: text/markdown
|
|
|
57
64
|
A **pure-python**<sup><a id="fnr.1" class="footref" href="#fn.1" role="doc-backlink">1</a></sup> project to provide unit-aware uniform visualizations
|
|
58
65
|
of common computational chemistry tasks. Essentially this means we provide:
|
|
59
66
|
|
|
67
|
+
- Parsers for various computational chemistry software outputs
|
|
60
68
|
- Plotting scripts for specific workflows
|
|
61
|
-
|
|
69
|
+
|
|
70
|
+
Computational tasks (surface fitting, structure analysis, interpolation) are
|
|
71
|
+
handled by [`rgpycrumbs`](https://github.com/HaoZeke/rgpycrumbs), which is a required dependency. `chemparseplot` parses
|
|
72
|
+
output files, delegates heavy computation to `rgpycrumbs`, and produces
|
|
73
|
+
publication-quality plots.
|
|
62
74
|
|
|
63
75
|
This is a spin-off from `wailord` ([here](https://wailord.xyz)) which is meant to handle aggregated
|
|
64
76
|
runs in a specific workflow, while here the goal is to do no input handling and
|
|
65
77
|
very pragmatic output parsing, with the goal of generating uniform plots.
|
|
66
78
|
|
|
67
79
|
|
|
68
|
-
<a id="
|
|
80
|
+
<a id="org86a8ea7"></a>
|
|
81
|
+
|
|
82
|
+
## Ecosystem Overview
|
|
83
|
+
|
|
84
|
+
`chemparseplot` is part of the `rgpycrumbs` suite of interlinked libraries.
|
|
85
|
+
|
|
86
|
+

|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
<a id="org2d23f41"></a>
|
|
69
90
|
|
|
70
91
|
## Features
|
|
71
92
|
|
|
@@ -75,7 +96,7 @@ very pragmatic output parsing, with the goal of generating uniform plots.
|
|
|
75
96
|
- Via `pint`
|
|
76
97
|
|
|
77
98
|
|
|
78
|
-
<a id="
|
|
99
|
+
<a id="orgd14b359"></a>
|
|
79
100
|
|
|
80
101
|
### Supported Engines [WIP]
|
|
81
102
|
|
|
@@ -85,7 +106,7 @@ very pragmatic output parsing, with the goal of generating uniform plots.
|
|
|
85
106
|
coordinate)
|
|
86
107
|
|
|
87
108
|
|
|
88
|
-
<a id="
|
|
109
|
+
<a id="orgd89d807"></a>
|
|
89
110
|
|
|
90
111
|
## Rationale
|
|
91
112
|
|
|
@@ -96,7 +117,7 @@ either Bohr/Hartree or Angstron/eV or whatever.
|
|
|
96
117
|
Also I couldn't find (m)any scripts using the scientific colorschemes.
|
|
97
118
|
|
|
98
119
|
|
|
99
|
-
<a id="
|
|
120
|
+
<a id="orgef56819"></a>
|
|
100
121
|
|
|
101
122
|
# License
|
|
102
123
|
|
|
@@ -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 = '
|
|
32
|
-
__version_tuple__ = version_tuple = (
|
|
31
|
+
__version__ = version = '1.1.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 1, 0)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -8,7 +8,7 @@ def min_e_result(eresp: Path) -> dict:
|
|
|
8
8
|
"""Reads and parses the results.dat file.
|
|
9
9
|
|
|
10
10
|
Args:
|
|
11
|
-
eresp: Path to the
|
|
11
|
+
eresp: Path to the eOn results directory.
|
|
12
12
|
|
|
13
13
|
Returns:
|
|
14
14
|
A dictionary containing the parsed data from results.dat, or None if the file
|
|
@@ -10,7 +10,7 @@ from rgpycrumbs.parsers.bless import BLESS_LOG
|
|
|
10
10
|
from rgpycrumbs.parsers.common import _NUM
|
|
11
11
|
from rgpycrumbs.search.helpers import tail
|
|
12
12
|
|
|
13
|
-
from
|
|
13
|
+
from rgpycrumbs.basetypes import DimerOpt, MolGeom, SaddleMeasure, SpinID
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class EONSaddleStatus(Enum):
|
|
@@ -72,7 +72,7 @@ def _read_results_dat(eresp: Path) -> dict:
|
|
|
72
72
|
"""Reads and parses the results.dat file.
|
|
73
73
|
|
|
74
74
|
Args:
|
|
75
|
-
eresp: Path to the
|
|
75
|
+
eresp: Path to the eOn results directory.
|
|
76
76
|
|
|
77
77
|
Returns:
|
|
78
78
|
A dictionary containing the parsed data from results.dat, or None if the file
|
|
@@ -103,10 +103,10 @@ def _read_results_dat(eresp: Path) -> dict:
|
|
|
103
103
|
|
|
104
104
|
|
|
105
105
|
def _find_log_file(eresp: Path) -> Path | None:
|
|
106
|
-
"""Finds the most recent, valid log file within the
|
|
106
|
+
"""Finds the most recent, valid log file within the eOn results directory.
|
|
107
107
|
|
|
108
108
|
Args:
|
|
109
|
-
eresp: Path to the
|
|
109
|
+
eresp: Path to the eOn results directory.
|
|
110
110
|
|
|
111
111
|
Returns:
|
|
112
112
|
Path to the chosen log file, or None if no suitable log file is found.
|
|
@@ -182,7 +182,7 @@ def _extract_saddle_info(
|
|
|
182
182
|
|
|
183
183
|
Args:
|
|
184
184
|
log_data: A list of strings representing the lines of the log file.
|
|
185
|
-
eresp: Path to the
|
|
185
|
+
eresp: Path to the eOn results directory.
|
|
186
186
|
is_gprd: Boolean flag indicating whether the GPRD method was used.
|
|
187
187
|
|
|
188
188
|
Returns:
|
|
@@ -245,10 +245,10 @@ def _get_methods(eresp: Path) -> DimerOpt:
|
|
|
245
245
|
|
|
246
246
|
|
|
247
247
|
def parse_eon_saddle(eresp: Path, rloc: "SpinID") -> "SaddleMeasure":
|
|
248
|
-
"""Parses
|
|
248
|
+
"""Parses eOn saddle point search results from a directory.
|
|
249
249
|
|
|
250
250
|
Args:
|
|
251
|
-
eresp: Path to the directory containing
|
|
251
|
+
eresp: Path to the directory containing eOn results.
|
|
252
252
|
rloc: A SpinID object.
|
|
253
253
|
|
|
254
254
|
Returns:
|
|
@@ -14,7 +14,7 @@ import re
|
|
|
14
14
|
|
|
15
15
|
import chemparseplot.parse.converter as conv
|
|
16
16
|
import chemparseplot.parse.patterns as pat
|
|
17
|
-
from
|
|
17
|
+
from rgpycrumbs.basetypes import nebiter, nebpath
|
|
18
18
|
from chemparseplot.units import Q_
|
|
19
19
|
|
|
20
20
|
# fmt: off
|