TCMU 0.17.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.
- tcmu-0.17.0/LICENSE +21 -0
- tcmu-0.17.0/MANIFEST.in +5 -0
- tcmu-0.17.0/PKG-INFO +111 -0
- tcmu-0.17.0/README.md +52 -0
- tcmu-0.17.0/pyproject.toml +96 -0
- tcmu-0.17.0/setup.cfg +4 -0
- tcmu-0.17.0/setup.py +4 -0
- tcmu-0.17.0/src/TCMU.egg-info/PKG-INFO +111 -0
- tcmu-0.17.0/src/TCMU.egg-info/SOURCES.txt +107 -0
- tcmu-0.17.0/src/TCMU.egg-info/dependency_links.txt +1 -0
- tcmu-0.17.0/src/TCMU.egg-info/entry_points.txt +2 -0
- tcmu-0.17.0/src/TCMU.egg-info/requires.txt +46 -0
- tcmu-0.17.0/src/TCMU.egg-info/top_level.txt +1 -0
- tcmu-0.17.0/src/tcmu/__init__.py +85 -0
- tcmu-0.17.0/src/tcmu/analysis/__init__.py +0 -0
- tcmu-0.17.0/src/tcmu/analysis/pyfrag.py +175 -0
- tcmu-0.17.0/src/tcmu/analysis/task_specific/__init__.py +0 -0
- tcmu-0.17.0/src/tcmu/analysis/task_specific/irc.py +96 -0
- tcmu-0.17.0/src/tcmu/analysis/vdd/__init__.py +0 -0
- tcmu-0.17.0/src/tcmu/analysis/vdd/charge.py +12 -0
- tcmu-0.17.0/src/tcmu/analysis/vdd/manager.py +221 -0
- tcmu-0.17.0/src/tcmu/analysis/vibration/__init__.py +0 -0
- tcmu-0.17.0/src/tcmu/analysis/vibration/ts_vibration.py +149 -0
- tcmu-0.17.0/src/tcmu/cache.py +188 -0
- tcmu-0.17.0/src/tcmu/cite.py +326 -0
- tcmu-0.17.0/src/tcmu/cli_scripts/__init__.py +0 -0
- tcmu-0.17.0/src/tcmu/cli_scripts/cite.py +308 -0
- tcmu-0.17.0/src/tcmu/cli_scripts/concatenate_irc.py +44 -0
- tcmu-0.17.0/src/tcmu/cli_scripts/geo.py +101 -0
- tcmu-0.17.0/src/tcmu/cli_scripts/job_script.py +57 -0
- tcmu-0.17.0/src/tcmu/cli_scripts/read.py +34 -0
- tcmu-0.17.0/src/tcmu/cli_scripts/resize_figures.py +58 -0
- tcmu-0.17.0/src/tcmu/cli_scripts/tcparser.py +23 -0
- tcmu-0.17.0/src/tcmu/cli_scripts/workflow.py +207 -0
- tcmu-0.17.0/src/tcmu/connect.py +492 -0
- tcmu-0.17.0/src/tcmu/constants.py +6 -0
- tcmu-0.17.0/src/tcmu/data/__init__.py +0 -0
- tcmu-0.17.0/src/tcmu/data/_atom_data_info/__init__.py +0 -0
- tcmu-0.17.0/src/tcmu/data/_convert_to_json.py +8 -0
- tcmu-0.17.0/src/tcmu/data/_read_BS_size.py +46 -0
- tcmu-0.17.0/src/tcmu/data/atom.py +124 -0
- tcmu-0.17.0/src/tcmu/data/basis_sets.py +85 -0
- tcmu-0.17.0/src/tcmu/data/cosmo.py +99 -0
- tcmu-0.17.0/src/tcmu/data/functionals.py +269 -0
- tcmu-0.17.0/src/tcmu/data/molecules.py +27 -0
- tcmu-0.17.0/src/tcmu/environment.py +28 -0
- tcmu-0.17.0/src/tcmu/errors.py +79 -0
- tcmu-0.17.0/src/tcmu/formula.py +111 -0
- tcmu-0.17.0/src/tcmu/geometry.py +699 -0
- tcmu-0.17.0/src/tcmu/job/__init__.py +0 -0
- tcmu-0.17.0/src/tcmu/job/adf.py +1071 -0
- tcmu-0.17.0/src/tcmu/job/ams.py +359 -0
- tcmu-0.17.0/src/tcmu/job/crest.py +392 -0
- tcmu-0.17.0/src/tcmu/job/dftb.py +82 -0
- tcmu-0.17.0/src/tcmu/job/generic.py +502 -0
- tcmu-0.17.0/src/tcmu/job/models.py +156 -0
- tcmu-0.17.0/src/tcmu/job/nmr.py +95 -0
- tcmu-0.17.0/src/tcmu/job/orca.py +289 -0
- tcmu-0.17.0/src/tcmu/job/postscripts/__init__.py +0 -0
- tcmu-0.17.0/src/tcmu/job/postscripts/clean_workdir.py +19 -0
- tcmu-0.17.0/src/tcmu/job/postscripts/split_crest_xyz.py +15 -0
- tcmu-0.17.0/src/tcmu/job/postscripts/write_converged_geoms.py +34 -0
- tcmu-0.17.0/src/tcmu/job/workflow.py +481 -0
- tcmu-0.17.0/src/tcmu/job/workflow3.py +441 -0
- tcmu-0.17.0/src/tcmu/job/workflow_db.py +179 -0
- tcmu-0.17.0/src/tcmu/job/workflow_status.py +23 -0
- tcmu-0.17.0/src/tcmu/job/xtb.py +159 -0
- tcmu-0.17.0/src/tcmu/log.py +527 -0
- tcmu-0.17.0/src/tcmu/molecule.py +404 -0
- tcmu-0.17.0/src/tcmu/pathfunc.py +214 -0
- tcmu-0.17.0/src/tcmu/report/__init__.py +0 -0
- tcmu-0.17.0/src/tcmu/report/_generate_font_widths.py +45 -0
- tcmu-0.17.0/src/tcmu/report/character.py +97 -0
- tcmu-0.17.0/src/tcmu/report/figure_resizer.py +174 -0
- tcmu-0.17.0/src/tcmu/report/formatters/__init__.py +0 -0
- tcmu-0.17.0/src/tcmu/report/formatters/generic.py +9 -0
- tcmu-0.17.0/src/tcmu/report/formatters/xyz.py +124 -0
- tcmu-0.17.0/src/tcmu/report/report.py +667 -0
- tcmu-0.17.0/src/tcmu/results/__init__.py +0 -0
- tcmu-0.17.0/src/tcmu/results/adf.py +453 -0
- tcmu-0.17.0/src/tcmu/results/ams.py +690 -0
- tcmu-0.17.0/src/tcmu/results/cache.py +79 -0
- tcmu-0.17.0/src/tcmu/results/crest.py +330 -0
- tcmu-0.17.0/src/tcmu/results/dftb.py +90 -0
- tcmu-0.17.0/src/tcmu/results/orca.py +559 -0
- tcmu-0.17.0/src/tcmu/results/read.py +186 -0
- tcmu-0.17.0/src/tcmu/results/result.py +219 -0
- tcmu-0.17.0/src/tcmu/results/xtb.py +441 -0
- tcmu-0.17.0/src/tcmu/slurm.py +162 -0
- tcmu-0.17.0/src/tcmu/spell_check.py +176 -0
- tcmu-0.17.0/src/tcmu/timer.py +187 -0
- tcmu-0.17.0/src/tcmu/typing_utilities.py +25 -0
- tcmu-0.17.0/test/test_adf_properties.py +39 -0
- tcmu-0.17.0/test/test_atom_data.py +35 -0
- tcmu-0.17.0/test/test_basis_set_data.py +14 -0
- tcmu-0.17.0/test/test_concatenate_irc.py +54 -0
- tcmu-0.17.0/test/test_ensure_2d.py +79 -0
- tcmu-0.17.0/test/test_formula.py +27 -0
- tcmu-0.17.0/test/test_functional_data.py +48 -0
- tcmu-0.17.0/test/test_geometry.py +140 -0
- tcmu-0.17.0/test/test_input_reader.py +12 -0
- tcmu-0.17.0/test/test_molecules.py +93 -0
- tcmu-0.17.0/test/test_pathfunc.py +118 -0
- tcmu-0.17.0/test/test_result_class.py +71 -0
- tcmu-0.17.0/test/test_results.py +63 -0
- tcmu-0.17.0/test/test_results_orca.py +84 -0
- tcmu-0.17.0/test/test_spell_check.py +67 -0
- tcmu-0.17.0/test/test_vdd_analysis.py +171 -0
- tcmu-0.17.0/test/test_vibrational_ts_analysis.py +86 -0
tcmu-0.17.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023 TheoCheM group
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
tcmu-0.17.0/MANIFEST.in
ADDED
tcmu-0.17.0/PKG-INFO
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: TCMU
|
|
3
|
+
Version: 0.17.0
|
|
4
|
+
Summary: Utility package for working with AMS/ADF within the Theoretical Chemistry group at the Vrije Universiteit Amsterdam (TheoCheM). Makes use of plams - a package developed by SCM
|
|
5
|
+
Author: TheoCheM group
|
|
6
|
+
Maintainer: TheoCheM group
|
|
7
|
+
License: MIT
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Requires-Python: >=3.8
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Requires-Dist: click>=8.1.8
|
|
19
|
+
Requires-Dist: dictfunc>=1.1.0
|
|
20
|
+
Requires-Dist: listfunc>=1.0.0
|
|
21
|
+
Requires-Dist: numpy>=1.24.4
|
|
22
|
+
Requires-Dist: plams>=2025.104
|
|
23
|
+
Requires-Dist: platformdirs>=4.3.6
|
|
24
|
+
Requires-Dist: requests>=2.32.4
|
|
25
|
+
Requires-Dist: strenum>=0.4.15
|
|
26
|
+
Requires-Dist: jsonpickle==3.1.0
|
|
27
|
+
Requires-Dist: filelock
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: gitpython>=3.1.45; extra == "dev"
|
|
30
|
+
Requires-Dist: pydata-sphinx-theme>=0.14.4; extra == "dev"
|
|
31
|
+
Requires-Dist: pytest>=8.3.5; extra == "dev"
|
|
32
|
+
Requires-Dist: pytest-cov>=5.0.0; extra == "dev"
|
|
33
|
+
Requires-Dist: ruff>=0.12.12; extra == "dev"
|
|
34
|
+
Requires-Dist: sphinx<9.0.0,>=7.1.2; extra == "dev"
|
|
35
|
+
Requires-Dist: sphinx-autodoc-typehints>=2.0.1; extra == "dev"
|
|
36
|
+
Requires-Dist: sphinx-click>=6.0.0; extra == "dev"
|
|
37
|
+
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "dev"
|
|
38
|
+
Requires-Dist: sphinx-tabs>=3.4.7; extra == "dev"
|
|
39
|
+
Requires-Dist: sphinxcontrib-applehelp>=1.0.4; extra == "dev"
|
|
40
|
+
Requires-Dist: sphinxcontrib-devhelp>=1.0.2; extra == "dev"
|
|
41
|
+
Requires-Dist: sphinxcontrib-htmlhelp>=2.0.1; extra == "dev"
|
|
42
|
+
Requires-Dist: sphinxcontrib-jsmath>=1.0.1; extra == "dev"
|
|
43
|
+
Requires-Dist: sphinxcontrib-qthelp>=1.0.3; extra == "dev"
|
|
44
|
+
Requires-Dist: sphinxcontrib-serializinghtml>=1.1.5; extra == "dev"
|
|
45
|
+
Provides-Extra: plot
|
|
46
|
+
Requires-Dist: matplotlib>=3.7.5; extra == "plot"
|
|
47
|
+
Provides-Extra: analysis
|
|
48
|
+
Requires-Dist: scipy>=1.10.1; extra == "analysis"
|
|
49
|
+
Provides-Extra: vdd
|
|
50
|
+
Requires-Dist: openpyxl>=3.1.5; extra == "vdd"
|
|
51
|
+
Requires-Dist: pandas>=2.0.3; extra == "vdd"
|
|
52
|
+
Provides-Extra: report
|
|
53
|
+
Requires-Dist: docx>=0.2.4; extra == "report"
|
|
54
|
+
Requires-Dist: htmldocx>=0.0.6; extra == "report"
|
|
55
|
+
Requires-Dist: opencv-python>=4.11.0.86; extra == "report"
|
|
56
|
+
Provides-Extra: connect
|
|
57
|
+
Requires-Dist: paramiko>=3.5.1; extra == "connect"
|
|
58
|
+
Dynamic: license-file
|
|
59
|
+
|
|
60
|
+
# TCMU
|
|
61
|
+
|
|
62
|
+
[](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_docs.yml) [](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_python_versions.yml) [](https://github.com/TheoChem-VU/TCMU/actions/workflows/pypi_publish.yml)
|
|
63
|
+
|
|
64
|
+
[](https://pypi.org/project/TCMU/)
|
|
65
|
+
|
|
66
|
+
Utility functions/classes for the TheoCheM programs
|
|
67
|
+
|
|
68
|
+
## Installation
|
|
69
|
+
|
|
70
|
+
The easiest and recommended installation method is via pip:
|
|
71
|
+
|
|
72
|
+
```python -m pip install tcmu```
|
|
73
|
+
|
|
74
|
+
To update the package, please run:
|
|
75
|
+
|
|
76
|
+
```python -m pip install --upgrade tcmu```
|
|
77
|
+
|
|
78
|
+
<details>
|
|
79
|
+
<summary><h4>Manual Installation</h4></summary>
|
|
80
|
+
The following is for people who would like to install the repository themselves. For example, to edit and/or contribute code to the project.
|
|
81
|
+
|
|
82
|
+
First clone this repository:
|
|
83
|
+
|
|
84
|
+
``` git clone https://github.com/TheoChem-VU/TCMU.git ```
|
|
85
|
+
|
|
86
|
+
Then move into the new directory and install the package:
|
|
87
|
+
|
|
88
|
+
```python
|
|
89
|
+
cd TCMU
|
|
90
|
+
python -m pip install --upgrade build
|
|
91
|
+
python -m build
|
|
92
|
+
python -m pip install -e .
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
To get new updates, simply run:
|
|
96
|
+
|
|
97
|
+
``` git pull ```
|
|
98
|
+
|
|
99
|
+
</details>
|
|
100
|
+
|
|
101
|
+
## Documentation
|
|
102
|
+
|
|
103
|
+
Documentation of TCMU is hosted at <https://theochem-vu.github.io/TCMU/> (work in progress)
|
|
104
|
+
|
|
105
|
+
## Usage
|
|
106
|
+
|
|
107
|
+
List of available utilities and their usage:
|
|
108
|
+
|
|
109
|
+
- tcmu.results | Read information from AMS calculations such as timings, settings, results, etc. from files in the calculation directory. Currently supports the ADF and DFTB engines.
|
|
110
|
+
- tcmu.molecule | Read and write rich xyz files. These are used to conveniently supply extra information with your xyz files, for example to let a program know what calculations to perform, or to include properties such as charge and spin-polarization.
|
|
111
|
+
- tcmu.analysis | Useful functions that are used for further analysis of calculation results. Currently includes vibrational mode checking to obtain or verify the reaction coordinate of an imaginary mode.
|
tcmu-0.17.0/README.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# TCMU
|
|
2
|
+
|
|
3
|
+
[](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_docs.yml) [](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_python_versions.yml) [](https://github.com/TheoChem-VU/TCMU/actions/workflows/pypi_publish.yml)
|
|
4
|
+
|
|
5
|
+
[](https://pypi.org/project/TCMU/)
|
|
6
|
+
|
|
7
|
+
Utility functions/classes for the TheoCheM programs
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
The easiest and recommended installation method is via pip:
|
|
12
|
+
|
|
13
|
+
```python -m pip install tcmu```
|
|
14
|
+
|
|
15
|
+
To update the package, please run:
|
|
16
|
+
|
|
17
|
+
```python -m pip install --upgrade tcmu```
|
|
18
|
+
|
|
19
|
+
<details>
|
|
20
|
+
<summary><h4>Manual Installation</h4></summary>
|
|
21
|
+
The following is for people who would like to install the repository themselves. For example, to edit and/or contribute code to the project.
|
|
22
|
+
|
|
23
|
+
First clone this repository:
|
|
24
|
+
|
|
25
|
+
``` git clone https://github.com/TheoChem-VU/TCMU.git ```
|
|
26
|
+
|
|
27
|
+
Then move into the new directory and install the package:
|
|
28
|
+
|
|
29
|
+
```python
|
|
30
|
+
cd TCMU
|
|
31
|
+
python -m pip install --upgrade build
|
|
32
|
+
python -m build
|
|
33
|
+
python -m pip install -e .
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
To get new updates, simply run:
|
|
37
|
+
|
|
38
|
+
``` git pull ```
|
|
39
|
+
|
|
40
|
+
</details>
|
|
41
|
+
|
|
42
|
+
## Documentation
|
|
43
|
+
|
|
44
|
+
Documentation of TCMU is hosted at <https://theochem-vu.github.io/TCMU/> (work in progress)
|
|
45
|
+
|
|
46
|
+
## Usage
|
|
47
|
+
|
|
48
|
+
List of available utilities and their usage:
|
|
49
|
+
|
|
50
|
+
- tcmu.results | Read information from AMS calculations such as timings, settings, results, etc. from files in the calculation directory. Currently supports the ADF and DFTB engines.
|
|
51
|
+
- tcmu.molecule | Read and write rich xyz files. These are used to conveniently supply extra information with your xyz files, for example to let a program know what calculations to perform, or to include properties such as charge and spin-polarization.
|
|
52
|
+
- tcmu.analysis | Useful functions that are used for further analysis of calculation results. Currently includes vibrational mode checking to obtain or verify the reaction coordinate of an imaginary mode.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = [
|
|
3
|
+
"setuptools>=69.5.1",
|
|
4
|
+
"wheel",
|
|
5
|
+
"gitpython",
|
|
6
|
+
"setuptools-git-versioning",
|
|
7
|
+
]
|
|
8
|
+
build-backend = "setuptools.build_meta"
|
|
9
|
+
|
|
10
|
+
[project]
|
|
11
|
+
name = "TCMU"
|
|
12
|
+
|
|
13
|
+
# Original authors
|
|
14
|
+
authors = [{ name = "TheoCheM group" }]
|
|
15
|
+
dependencies = [
|
|
16
|
+
"click>=8.1.8",
|
|
17
|
+
"dictfunc>=1.1.0",
|
|
18
|
+
"listfunc>=1.0.0",
|
|
19
|
+
"numpy>=1.24.4",
|
|
20
|
+
"plams>=2025.104",
|
|
21
|
+
"platformdirs>=4.3.6",
|
|
22
|
+
"requests>=2.32.4",
|
|
23
|
+
"strenum>=0.4.15",
|
|
24
|
+
"jsonpickle==3.1.0",
|
|
25
|
+
"filelock",
|
|
26
|
+
]
|
|
27
|
+
# Current maintainers
|
|
28
|
+
maintainers = [{ name = "TheoCheM group" }]
|
|
29
|
+
license = { text = "MIT" }
|
|
30
|
+
description = "Utility package for working with AMS/ADF within the Theoretical Chemistry group at the Vrije Universiteit Amsterdam (TheoCheM). Makes use of plams - a package developed by SCM"
|
|
31
|
+
readme = "README.md"
|
|
32
|
+
requires-python = ">=3.8"
|
|
33
|
+
classifiers = [
|
|
34
|
+
"Programming Language :: Python :: 3.8",
|
|
35
|
+
"Programming Language :: Python :: 3.9",
|
|
36
|
+
"Programming Language :: Python :: 3.10",
|
|
37
|
+
"Programming Language :: Python :: 3.11",
|
|
38
|
+
"Programming Language :: Python :: 3.12",
|
|
39
|
+
"License :: OSI Approved :: MIT License",
|
|
40
|
+
"Operating System :: OS Independent",
|
|
41
|
+
]
|
|
42
|
+
dynamic = ["version"]
|
|
43
|
+
|
|
44
|
+
[tool.setuptools-git-versioning]
|
|
45
|
+
enabled = true
|
|
46
|
+
template = "{tag}"
|
|
47
|
+
dev_template = "{tag}"
|
|
48
|
+
dirty_template = "{tag}"
|
|
49
|
+
|
|
50
|
+
[tool.setuptools.packages.find]
|
|
51
|
+
where = ["src"] # list of folders that contain the packages (["."] by default)
|
|
52
|
+
include = [
|
|
53
|
+
"tcmu*",
|
|
54
|
+
] # package names should match these glob patterns (["*"] by default)
|
|
55
|
+
exclude = [
|
|
56
|
+
"tests*",
|
|
57
|
+
"docs*",
|
|
58
|
+
] # exclude packages matching these glob patterns (empty by default)
|
|
59
|
+
namespaces = false # to disable scanning PEP 420 namespaces (true by default)
|
|
60
|
+
|
|
61
|
+
[dependency-groups]
|
|
62
|
+
dev = []
|
|
63
|
+
|
|
64
|
+
[project.scripts]
|
|
65
|
+
tcmu = "tcmu.cli_scripts.tcparser:tcmu"
|
|
66
|
+
|
|
67
|
+
# TODO: this block should not be optional anymore once we drop Python 3.8 support. Ideally, we want to use uv for all CLI tools which makes installing development dependencies extremely streamlined.
|
|
68
|
+
# The reason why we cannot do this yet is because the new pip 25.1 update (April 2025) is only available for python 3.9 and up. This means that users with Python 3.8 will not be able to install the dev dependencies because uv requires pip 25.1+.
|
|
69
|
+
# See https://ichard26.github.io/blog/2025/04/whats-new-in-pip-25.1/ and https://packaging.python.org/en/latest/specifications/dependency-groups/
|
|
70
|
+
[project.optional-dependencies]
|
|
71
|
+
dev = [
|
|
72
|
+
"gitpython>=3.1.45",
|
|
73
|
+
"pydata-sphinx-theme>=0.14.4",
|
|
74
|
+
"pytest>=8.3.5",
|
|
75
|
+
"pytest-cov>=5.0.0",
|
|
76
|
+
"ruff>=0.12.12",
|
|
77
|
+
"sphinx>=7.1.2, <9.0.0",
|
|
78
|
+
"sphinx-autodoc-typehints>=2.0.1",
|
|
79
|
+
"sphinx-click>=6.0.0",
|
|
80
|
+
"sphinx-copybutton>=0.5.2",
|
|
81
|
+
"sphinx-tabs>=3.4.7",
|
|
82
|
+
"sphinxcontrib-applehelp>=1.0.4",
|
|
83
|
+
"sphinxcontrib-devhelp>=1.0.2",
|
|
84
|
+
"sphinxcontrib-htmlhelp>=2.0.1",
|
|
85
|
+
"sphinxcontrib-jsmath>=1.0.1",
|
|
86
|
+
"sphinxcontrib-qthelp>=1.0.3",
|
|
87
|
+
"sphinxcontrib-serializinghtml>=1.1.5",
|
|
88
|
+
]
|
|
89
|
+
|
|
90
|
+
plot = ["matplotlib>=3.7.5"]
|
|
91
|
+
analysis = ["scipy>=1.10.1"]
|
|
92
|
+
vdd = ["openpyxl>=3.1.5", "pandas>=2.0.3"]
|
|
93
|
+
report = ["docx>=0.2.4", "htmldocx>=0.0.6", "opencv-python>=4.11.0.86"]
|
|
94
|
+
connect = ["paramiko>=3.5.1"]
|
|
95
|
+
|
|
96
|
+
# adf = ["pyfmo"]
|
tcmu-0.17.0/setup.cfg
ADDED
tcmu-0.17.0/setup.py
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: TCMU
|
|
3
|
+
Version: 0.17.0
|
|
4
|
+
Summary: Utility package for working with AMS/ADF within the Theoretical Chemistry group at the Vrije Universiteit Amsterdam (TheoCheM). Makes use of plams - a package developed by SCM
|
|
5
|
+
Author: TheoCheM group
|
|
6
|
+
Maintainer: TheoCheM group
|
|
7
|
+
License: MIT
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Requires-Python: >=3.8
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Requires-Dist: click>=8.1.8
|
|
19
|
+
Requires-Dist: dictfunc>=1.1.0
|
|
20
|
+
Requires-Dist: listfunc>=1.0.0
|
|
21
|
+
Requires-Dist: numpy>=1.24.4
|
|
22
|
+
Requires-Dist: plams>=2025.104
|
|
23
|
+
Requires-Dist: platformdirs>=4.3.6
|
|
24
|
+
Requires-Dist: requests>=2.32.4
|
|
25
|
+
Requires-Dist: strenum>=0.4.15
|
|
26
|
+
Requires-Dist: jsonpickle==3.1.0
|
|
27
|
+
Requires-Dist: filelock
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: gitpython>=3.1.45; extra == "dev"
|
|
30
|
+
Requires-Dist: pydata-sphinx-theme>=0.14.4; extra == "dev"
|
|
31
|
+
Requires-Dist: pytest>=8.3.5; extra == "dev"
|
|
32
|
+
Requires-Dist: pytest-cov>=5.0.0; extra == "dev"
|
|
33
|
+
Requires-Dist: ruff>=0.12.12; extra == "dev"
|
|
34
|
+
Requires-Dist: sphinx<9.0.0,>=7.1.2; extra == "dev"
|
|
35
|
+
Requires-Dist: sphinx-autodoc-typehints>=2.0.1; extra == "dev"
|
|
36
|
+
Requires-Dist: sphinx-click>=6.0.0; extra == "dev"
|
|
37
|
+
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "dev"
|
|
38
|
+
Requires-Dist: sphinx-tabs>=3.4.7; extra == "dev"
|
|
39
|
+
Requires-Dist: sphinxcontrib-applehelp>=1.0.4; extra == "dev"
|
|
40
|
+
Requires-Dist: sphinxcontrib-devhelp>=1.0.2; extra == "dev"
|
|
41
|
+
Requires-Dist: sphinxcontrib-htmlhelp>=2.0.1; extra == "dev"
|
|
42
|
+
Requires-Dist: sphinxcontrib-jsmath>=1.0.1; extra == "dev"
|
|
43
|
+
Requires-Dist: sphinxcontrib-qthelp>=1.0.3; extra == "dev"
|
|
44
|
+
Requires-Dist: sphinxcontrib-serializinghtml>=1.1.5; extra == "dev"
|
|
45
|
+
Provides-Extra: plot
|
|
46
|
+
Requires-Dist: matplotlib>=3.7.5; extra == "plot"
|
|
47
|
+
Provides-Extra: analysis
|
|
48
|
+
Requires-Dist: scipy>=1.10.1; extra == "analysis"
|
|
49
|
+
Provides-Extra: vdd
|
|
50
|
+
Requires-Dist: openpyxl>=3.1.5; extra == "vdd"
|
|
51
|
+
Requires-Dist: pandas>=2.0.3; extra == "vdd"
|
|
52
|
+
Provides-Extra: report
|
|
53
|
+
Requires-Dist: docx>=0.2.4; extra == "report"
|
|
54
|
+
Requires-Dist: htmldocx>=0.0.6; extra == "report"
|
|
55
|
+
Requires-Dist: opencv-python>=4.11.0.86; extra == "report"
|
|
56
|
+
Provides-Extra: connect
|
|
57
|
+
Requires-Dist: paramiko>=3.5.1; extra == "connect"
|
|
58
|
+
Dynamic: license-file
|
|
59
|
+
|
|
60
|
+
# TCMU
|
|
61
|
+
|
|
62
|
+
[](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_docs.yml) [](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_python_versions.yml) [](https://github.com/TheoChem-VU/TCMU/actions/workflows/pypi_publish.yml)
|
|
63
|
+
|
|
64
|
+
[](https://pypi.org/project/TCMU/)
|
|
65
|
+
|
|
66
|
+
Utility functions/classes for the TheoCheM programs
|
|
67
|
+
|
|
68
|
+
## Installation
|
|
69
|
+
|
|
70
|
+
The easiest and recommended installation method is via pip:
|
|
71
|
+
|
|
72
|
+
```python -m pip install tcmu```
|
|
73
|
+
|
|
74
|
+
To update the package, please run:
|
|
75
|
+
|
|
76
|
+
```python -m pip install --upgrade tcmu```
|
|
77
|
+
|
|
78
|
+
<details>
|
|
79
|
+
<summary><h4>Manual Installation</h4></summary>
|
|
80
|
+
The following is for people who would like to install the repository themselves. For example, to edit and/or contribute code to the project.
|
|
81
|
+
|
|
82
|
+
First clone this repository:
|
|
83
|
+
|
|
84
|
+
``` git clone https://github.com/TheoChem-VU/TCMU.git ```
|
|
85
|
+
|
|
86
|
+
Then move into the new directory and install the package:
|
|
87
|
+
|
|
88
|
+
```python
|
|
89
|
+
cd TCMU
|
|
90
|
+
python -m pip install --upgrade build
|
|
91
|
+
python -m build
|
|
92
|
+
python -m pip install -e .
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
To get new updates, simply run:
|
|
96
|
+
|
|
97
|
+
``` git pull ```
|
|
98
|
+
|
|
99
|
+
</details>
|
|
100
|
+
|
|
101
|
+
## Documentation
|
|
102
|
+
|
|
103
|
+
Documentation of TCMU is hosted at <https://theochem-vu.github.io/TCMU/> (work in progress)
|
|
104
|
+
|
|
105
|
+
## Usage
|
|
106
|
+
|
|
107
|
+
List of available utilities and their usage:
|
|
108
|
+
|
|
109
|
+
- tcmu.results | Read information from AMS calculations such as timings, settings, results, etc. from files in the calculation directory. Currently supports the ADF and DFTB engines.
|
|
110
|
+
- tcmu.molecule | Read and write rich xyz files. These are used to conveniently supply extra information with your xyz files, for example to let a program know what calculations to perform, or to include properties such as charge and spin-polarization.
|
|
111
|
+
- tcmu.analysis | Useful functions that are used for further analysis of calculation results. Currently includes vibrational mode checking to obtain or verify the reaction coordinate of an imaginary mode.
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
MANIFEST.in
|
|
3
|
+
README.md
|
|
4
|
+
pyproject.toml
|
|
5
|
+
setup.py
|
|
6
|
+
src/TCMU.egg-info/PKG-INFO
|
|
7
|
+
src/TCMU.egg-info/SOURCES.txt
|
|
8
|
+
src/TCMU.egg-info/dependency_links.txt
|
|
9
|
+
src/TCMU.egg-info/entry_points.txt
|
|
10
|
+
src/TCMU.egg-info/requires.txt
|
|
11
|
+
src/TCMU.egg-info/top_level.txt
|
|
12
|
+
src/tcmu/__init__.py
|
|
13
|
+
src/tcmu/cache.py
|
|
14
|
+
src/tcmu/cite.py
|
|
15
|
+
src/tcmu/connect.py
|
|
16
|
+
src/tcmu/constants.py
|
|
17
|
+
src/tcmu/environment.py
|
|
18
|
+
src/tcmu/errors.py
|
|
19
|
+
src/tcmu/formula.py
|
|
20
|
+
src/tcmu/geometry.py
|
|
21
|
+
src/tcmu/log.py
|
|
22
|
+
src/tcmu/molecule.py
|
|
23
|
+
src/tcmu/pathfunc.py
|
|
24
|
+
src/tcmu/slurm.py
|
|
25
|
+
src/tcmu/spell_check.py
|
|
26
|
+
src/tcmu/timer.py
|
|
27
|
+
src/tcmu/typing_utilities.py
|
|
28
|
+
src/tcmu/analysis/__init__.py
|
|
29
|
+
src/tcmu/analysis/pyfrag.py
|
|
30
|
+
src/tcmu/analysis/task_specific/__init__.py
|
|
31
|
+
src/tcmu/analysis/task_specific/irc.py
|
|
32
|
+
src/tcmu/analysis/vdd/__init__.py
|
|
33
|
+
src/tcmu/analysis/vdd/charge.py
|
|
34
|
+
src/tcmu/analysis/vdd/manager.py
|
|
35
|
+
src/tcmu/analysis/vibration/__init__.py
|
|
36
|
+
src/tcmu/analysis/vibration/ts_vibration.py
|
|
37
|
+
src/tcmu/cli_scripts/__init__.py
|
|
38
|
+
src/tcmu/cli_scripts/cite.py
|
|
39
|
+
src/tcmu/cli_scripts/concatenate_irc.py
|
|
40
|
+
src/tcmu/cli_scripts/geo.py
|
|
41
|
+
src/tcmu/cli_scripts/job_script.py
|
|
42
|
+
src/tcmu/cli_scripts/read.py
|
|
43
|
+
src/tcmu/cli_scripts/resize_figures.py
|
|
44
|
+
src/tcmu/cli_scripts/tcparser.py
|
|
45
|
+
src/tcmu/cli_scripts/workflow.py
|
|
46
|
+
src/tcmu/data/__init__.py
|
|
47
|
+
src/tcmu/data/_convert_to_json.py
|
|
48
|
+
src/tcmu/data/_read_BS_size.py
|
|
49
|
+
src/tcmu/data/atom.py
|
|
50
|
+
src/tcmu/data/basis_sets.py
|
|
51
|
+
src/tcmu/data/cosmo.py
|
|
52
|
+
src/tcmu/data/functionals.py
|
|
53
|
+
src/tcmu/data/molecules.py
|
|
54
|
+
src/tcmu/data/_atom_data_info/__init__.py
|
|
55
|
+
src/tcmu/job/__init__.py
|
|
56
|
+
src/tcmu/job/adf.py
|
|
57
|
+
src/tcmu/job/ams.py
|
|
58
|
+
src/tcmu/job/crest.py
|
|
59
|
+
src/tcmu/job/dftb.py
|
|
60
|
+
src/tcmu/job/generic.py
|
|
61
|
+
src/tcmu/job/models.py
|
|
62
|
+
src/tcmu/job/nmr.py
|
|
63
|
+
src/tcmu/job/orca.py
|
|
64
|
+
src/tcmu/job/workflow.py
|
|
65
|
+
src/tcmu/job/workflow3.py
|
|
66
|
+
src/tcmu/job/workflow_db.py
|
|
67
|
+
src/tcmu/job/workflow_status.py
|
|
68
|
+
src/tcmu/job/xtb.py
|
|
69
|
+
src/tcmu/job/postscripts/__init__.py
|
|
70
|
+
src/tcmu/job/postscripts/clean_workdir.py
|
|
71
|
+
src/tcmu/job/postscripts/split_crest_xyz.py
|
|
72
|
+
src/tcmu/job/postscripts/write_converged_geoms.py
|
|
73
|
+
src/tcmu/report/__init__.py
|
|
74
|
+
src/tcmu/report/_generate_font_widths.py
|
|
75
|
+
src/tcmu/report/character.py
|
|
76
|
+
src/tcmu/report/figure_resizer.py
|
|
77
|
+
src/tcmu/report/report.py
|
|
78
|
+
src/tcmu/report/formatters/__init__.py
|
|
79
|
+
src/tcmu/report/formatters/generic.py
|
|
80
|
+
src/tcmu/report/formatters/xyz.py
|
|
81
|
+
src/tcmu/results/__init__.py
|
|
82
|
+
src/tcmu/results/adf.py
|
|
83
|
+
src/tcmu/results/ams.py
|
|
84
|
+
src/tcmu/results/cache.py
|
|
85
|
+
src/tcmu/results/crest.py
|
|
86
|
+
src/tcmu/results/dftb.py
|
|
87
|
+
src/tcmu/results/orca.py
|
|
88
|
+
src/tcmu/results/read.py
|
|
89
|
+
src/tcmu/results/result.py
|
|
90
|
+
src/tcmu/results/xtb.py
|
|
91
|
+
test/test_adf_properties.py
|
|
92
|
+
test/test_atom_data.py
|
|
93
|
+
test/test_basis_set_data.py
|
|
94
|
+
test/test_concatenate_irc.py
|
|
95
|
+
test/test_ensure_2d.py
|
|
96
|
+
test/test_formula.py
|
|
97
|
+
test/test_functional_data.py
|
|
98
|
+
test/test_geometry.py
|
|
99
|
+
test/test_input_reader.py
|
|
100
|
+
test/test_molecules.py
|
|
101
|
+
test/test_pathfunc.py
|
|
102
|
+
test/test_result_class.py
|
|
103
|
+
test/test_results.py
|
|
104
|
+
test/test_results_orca.py
|
|
105
|
+
test/test_spell_check.py
|
|
106
|
+
test/test_vdd_analysis.py
|
|
107
|
+
test/test_vibrational_ts_analysis.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
click>=8.1.8
|
|
2
|
+
dictfunc>=1.1.0
|
|
3
|
+
listfunc>=1.0.0
|
|
4
|
+
numpy>=1.24.4
|
|
5
|
+
plams>=2025.104
|
|
6
|
+
platformdirs>=4.3.6
|
|
7
|
+
requests>=2.32.4
|
|
8
|
+
strenum>=0.4.15
|
|
9
|
+
jsonpickle==3.1.0
|
|
10
|
+
filelock
|
|
11
|
+
|
|
12
|
+
[analysis]
|
|
13
|
+
scipy>=1.10.1
|
|
14
|
+
|
|
15
|
+
[connect]
|
|
16
|
+
paramiko>=3.5.1
|
|
17
|
+
|
|
18
|
+
[dev]
|
|
19
|
+
gitpython>=3.1.45
|
|
20
|
+
pydata-sphinx-theme>=0.14.4
|
|
21
|
+
pytest>=8.3.5
|
|
22
|
+
pytest-cov>=5.0.0
|
|
23
|
+
ruff>=0.12.12
|
|
24
|
+
sphinx<9.0.0,>=7.1.2
|
|
25
|
+
sphinx-autodoc-typehints>=2.0.1
|
|
26
|
+
sphinx-click>=6.0.0
|
|
27
|
+
sphinx-copybutton>=0.5.2
|
|
28
|
+
sphinx-tabs>=3.4.7
|
|
29
|
+
sphinxcontrib-applehelp>=1.0.4
|
|
30
|
+
sphinxcontrib-devhelp>=1.0.2
|
|
31
|
+
sphinxcontrib-htmlhelp>=2.0.1
|
|
32
|
+
sphinxcontrib-jsmath>=1.0.1
|
|
33
|
+
sphinxcontrib-qthelp>=1.0.3
|
|
34
|
+
sphinxcontrib-serializinghtml>=1.1.5
|
|
35
|
+
|
|
36
|
+
[plot]
|
|
37
|
+
matplotlib>=3.7.5
|
|
38
|
+
|
|
39
|
+
[report]
|
|
40
|
+
docx>=0.2.4
|
|
41
|
+
htmldocx>=0.0.6
|
|
42
|
+
opencv-python>=4.11.0.86
|
|
43
|
+
|
|
44
|
+
[vdd]
|
|
45
|
+
openpyxl>=3.1.5
|
|
46
|
+
pandas>=2.0.3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tcmu
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Job imports
|
|
2
|
+
from tcmu.cache import cache, cache_file, timed_cache
|
|
3
|
+
from tcmu import log
|
|
4
|
+
from tcmu.analysis.pyfrag import PyFragResult, get_pyfrag_results
|
|
5
|
+
from tcmu.analysis.task_specific.irc import concatenate_irc_trajectories
|
|
6
|
+
from tcmu.analysis.vdd.charge import VDDCharge
|
|
7
|
+
|
|
8
|
+
# from tcmu.analysis.vdd.manager import VDDChargeManager, create_vdd_charge_manager # Don't load in vdd as it has an annoying pandas dependency that cannot be avoided upon importing
|
|
9
|
+
from tcmu.analysis.vibration.ts_vibration import avg_relative_bond_length_delta, determine_ts_reactioncoordinate, validate_transitionstate
|
|
10
|
+
from tcmu.cite import cite, _get_doi_data, _get_doi_data_from_title, _get_doi_data_from_query, _get_publisher_city, _get_journal_abbreviation
|
|
11
|
+
from tcmu.connect import Connection, Local, Server, ServerFile
|
|
12
|
+
from tcmu.data.functionals import categories, functional_name_from_path_safe_name, functionals, get_available_functionals, get_functional
|
|
13
|
+
from tcmu.environment import requires_optional_package
|
|
14
|
+
from tcmu.geometry import KabschTransform, MolTransform, Transform, apply_rotmat, get_rotmat, rotate, rotmat_to_angles, vector_align_rotmat
|
|
15
|
+
from tcmu.results.read import get_info, quick_status, read, get_timing
|
|
16
|
+
from tcmu.results.result import Result
|
|
17
|
+
from tcmu.job.workflow import WorkFlow
|
|
18
|
+
from tcmu.job import workflow_db, workflow_status
|
|
19
|
+
from tcmu.job.adf import ADFFragmentJob, ADFJob, DensfJob
|
|
20
|
+
from tcmu.job.ams import AMSJob
|
|
21
|
+
from tcmu.job.crest import CRESTJob, QCGJob
|
|
22
|
+
from tcmu.job.dftb import DFTBJob
|
|
23
|
+
from tcmu.job.nmr import NMRJob
|
|
24
|
+
from tcmu.job.orca import ORCAJob, GOATJob
|
|
25
|
+
from tcmu.job.xtb import XTBJob
|
|
26
|
+
from tcmu.molecule import from_string, guess_fragments, load, number_of_electrons, save, write_mol_to_amv_file, write_mol_to_xyz_file
|
|
27
|
+
# from tcmu.report.report import SI
|
|
28
|
+
from tcmu.timer import timer
|
|
29
|
+
|
|
30
|
+
__all__ = [
|
|
31
|
+
"ADFFragmentJob",
|
|
32
|
+
"ADFJob",
|
|
33
|
+
"DensfJob",
|
|
34
|
+
"AMSJob",
|
|
35
|
+
"CRESTJob",
|
|
36
|
+
"QCGJob",
|
|
37
|
+
"DFTBJob",
|
|
38
|
+
"NMRJob",
|
|
39
|
+
"ORCAJob",
|
|
40
|
+
"GOATJob",
|
|
41
|
+
"XTBJob",
|
|
42
|
+
"log",
|
|
43
|
+
"from_string",
|
|
44
|
+
"guess_fragments",
|
|
45
|
+
"load",
|
|
46
|
+
"number_of_electrons",
|
|
47
|
+
"save",
|
|
48
|
+
"write_mol_to_amv_file",
|
|
49
|
+
"write_mol_to_xyz_file",
|
|
50
|
+
"get_info",
|
|
51
|
+
"quick_status",
|
|
52
|
+
"read",
|
|
53
|
+
"Result",
|
|
54
|
+
"timer",
|
|
55
|
+
"Connection",
|
|
56
|
+
"Local",
|
|
57
|
+
"Server",
|
|
58
|
+
"ServerFile",
|
|
59
|
+
"cache",
|
|
60
|
+
"cache_file",
|
|
61
|
+
"cite",
|
|
62
|
+
"requires_optional_package",
|
|
63
|
+
"Transform",
|
|
64
|
+
"KabschTransform",
|
|
65
|
+
"MolTransform",
|
|
66
|
+
"get_rotmat",
|
|
67
|
+
"rotmat_to_angles",
|
|
68
|
+
"apply_rotmat",
|
|
69
|
+
"rotate",
|
|
70
|
+
"vector_align_rotmat",
|
|
71
|
+
"PyFragResult",
|
|
72
|
+
"get_pyfrag_results",
|
|
73
|
+
"concatenate_irc_trajectories",
|
|
74
|
+
"VDDCharge",
|
|
75
|
+
"avg_relative_bond_length_delta",
|
|
76
|
+
"determine_ts_reactioncoordinate",
|
|
77
|
+
"validate_transitionstate",
|
|
78
|
+
"categories",
|
|
79
|
+
"functionals",
|
|
80
|
+
"functional_name_from_path_safe_name",
|
|
81
|
+
"get_functional",
|
|
82
|
+
"get_available_functionals",
|
|
83
|
+
# "SI",
|
|
84
|
+
"timed_cache",
|
|
85
|
+
]
|
|
File without changes
|