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.
Files changed (109) hide show
  1. tcmu-0.17.0/LICENSE +21 -0
  2. tcmu-0.17.0/MANIFEST.in +5 -0
  3. tcmu-0.17.0/PKG-INFO +111 -0
  4. tcmu-0.17.0/README.md +52 -0
  5. tcmu-0.17.0/pyproject.toml +96 -0
  6. tcmu-0.17.0/setup.cfg +4 -0
  7. tcmu-0.17.0/setup.py +4 -0
  8. tcmu-0.17.0/src/TCMU.egg-info/PKG-INFO +111 -0
  9. tcmu-0.17.0/src/TCMU.egg-info/SOURCES.txt +107 -0
  10. tcmu-0.17.0/src/TCMU.egg-info/dependency_links.txt +1 -0
  11. tcmu-0.17.0/src/TCMU.egg-info/entry_points.txt +2 -0
  12. tcmu-0.17.0/src/TCMU.egg-info/requires.txt +46 -0
  13. tcmu-0.17.0/src/TCMU.egg-info/top_level.txt +1 -0
  14. tcmu-0.17.0/src/tcmu/__init__.py +85 -0
  15. tcmu-0.17.0/src/tcmu/analysis/__init__.py +0 -0
  16. tcmu-0.17.0/src/tcmu/analysis/pyfrag.py +175 -0
  17. tcmu-0.17.0/src/tcmu/analysis/task_specific/__init__.py +0 -0
  18. tcmu-0.17.0/src/tcmu/analysis/task_specific/irc.py +96 -0
  19. tcmu-0.17.0/src/tcmu/analysis/vdd/__init__.py +0 -0
  20. tcmu-0.17.0/src/tcmu/analysis/vdd/charge.py +12 -0
  21. tcmu-0.17.0/src/tcmu/analysis/vdd/manager.py +221 -0
  22. tcmu-0.17.0/src/tcmu/analysis/vibration/__init__.py +0 -0
  23. tcmu-0.17.0/src/tcmu/analysis/vibration/ts_vibration.py +149 -0
  24. tcmu-0.17.0/src/tcmu/cache.py +188 -0
  25. tcmu-0.17.0/src/tcmu/cite.py +326 -0
  26. tcmu-0.17.0/src/tcmu/cli_scripts/__init__.py +0 -0
  27. tcmu-0.17.0/src/tcmu/cli_scripts/cite.py +308 -0
  28. tcmu-0.17.0/src/tcmu/cli_scripts/concatenate_irc.py +44 -0
  29. tcmu-0.17.0/src/tcmu/cli_scripts/geo.py +101 -0
  30. tcmu-0.17.0/src/tcmu/cli_scripts/job_script.py +57 -0
  31. tcmu-0.17.0/src/tcmu/cli_scripts/read.py +34 -0
  32. tcmu-0.17.0/src/tcmu/cli_scripts/resize_figures.py +58 -0
  33. tcmu-0.17.0/src/tcmu/cli_scripts/tcparser.py +23 -0
  34. tcmu-0.17.0/src/tcmu/cli_scripts/workflow.py +207 -0
  35. tcmu-0.17.0/src/tcmu/connect.py +492 -0
  36. tcmu-0.17.0/src/tcmu/constants.py +6 -0
  37. tcmu-0.17.0/src/tcmu/data/__init__.py +0 -0
  38. tcmu-0.17.0/src/tcmu/data/_atom_data_info/__init__.py +0 -0
  39. tcmu-0.17.0/src/tcmu/data/_convert_to_json.py +8 -0
  40. tcmu-0.17.0/src/tcmu/data/_read_BS_size.py +46 -0
  41. tcmu-0.17.0/src/tcmu/data/atom.py +124 -0
  42. tcmu-0.17.0/src/tcmu/data/basis_sets.py +85 -0
  43. tcmu-0.17.0/src/tcmu/data/cosmo.py +99 -0
  44. tcmu-0.17.0/src/tcmu/data/functionals.py +269 -0
  45. tcmu-0.17.0/src/tcmu/data/molecules.py +27 -0
  46. tcmu-0.17.0/src/tcmu/environment.py +28 -0
  47. tcmu-0.17.0/src/tcmu/errors.py +79 -0
  48. tcmu-0.17.0/src/tcmu/formula.py +111 -0
  49. tcmu-0.17.0/src/tcmu/geometry.py +699 -0
  50. tcmu-0.17.0/src/tcmu/job/__init__.py +0 -0
  51. tcmu-0.17.0/src/tcmu/job/adf.py +1071 -0
  52. tcmu-0.17.0/src/tcmu/job/ams.py +359 -0
  53. tcmu-0.17.0/src/tcmu/job/crest.py +392 -0
  54. tcmu-0.17.0/src/tcmu/job/dftb.py +82 -0
  55. tcmu-0.17.0/src/tcmu/job/generic.py +502 -0
  56. tcmu-0.17.0/src/tcmu/job/models.py +156 -0
  57. tcmu-0.17.0/src/tcmu/job/nmr.py +95 -0
  58. tcmu-0.17.0/src/tcmu/job/orca.py +289 -0
  59. tcmu-0.17.0/src/tcmu/job/postscripts/__init__.py +0 -0
  60. tcmu-0.17.0/src/tcmu/job/postscripts/clean_workdir.py +19 -0
  61. tcmu-0.17.0/src/tcmu/job/postscripts/split_crest_xyz.py +15 -0
  62. tcmu-0.17.0/src/tcmu/job/postscripts/write_converged_geoms.py +34 -0
  63. tcmu-0.17.0/src/tcmu/job/workflow.py +481 -0
  64. tcmu-0.17.0/src/tcmu/job/workflow3.py +441 -0
  65. tcmu-0.17.0/src/tcmu/job/workflow_db.py +179 -0
  66. tcmu-0.17.0/src/tcmu/job/workflow_status.py +23 -0
  67. tcmu-0.17.0/src/tcmu/job/xtb.py +159 -0
  68. tcmu-0.17.0/src/tcmu/log.py +527 -0
  69. tcmu-0.17.0/src/tcmu/molecule.py +404 -0
  70. tcmu-0.17.0/src/tcmu/pathfunc.py +214 -0
  71. tcmu-0.17.0/src/tcmu/report/__init__.py +0 -0
  72. tcmu-0.17.0/src/tcmu/report/_generate_font_widths.py +45 -0
  73. tcmu-0.17.0/src/tcmu/report/character.py +97 -0
  74. tcmu-0.17.0/src/tcmu/report/figure_resizer.py +174 -0
  75. tcmu-0.17.0/src/tcmu/report/formatters/__init__.py +0 -0
  76. tcmu-0.17.0/src/tcmu/report/formatters/generic.py +9 -0
  77. tcmu-0.17.0/src/tcmu/report/formatters/xyz.py +124 -0
  78. tcmu-0.17.0/src/tcmu/report/report.py +667 -0
  79. tcmu-0.17.0/src/tcmu/results/__init__.py +0 -0
  80. tcmu-0.17.0/src/tcmu/results/adf.py +453 -0
  81. tcmu-0.17.0/src/tcmu/results/ams.py +690 -0
  82. tcmu-0.17.0/src/tcmu/results/cache.py +79 -0
  83. tcmu-0.17.0/src/tcmu/results/crest.py +330 -0
  84. tcmu-0.17.0/src/tcmu/results/dftb.py +90 -0
  85. tcmu-0.17.0/src/tcmu/results/orca.py +559 -0
  86. tcmu-0.17.0/src/tcmu/results/read.py +186 -0
  87. tcmu-0.17.0/src/tcmu/results/result.py +219 -0
  88. tcmu-0.17.0/src/tcmu/results/xtb.py +441 -0
  89. tcmu-0.17.0/src/tcmu/slurm.py +162 -0
  90. tcmu-0.17.0/src/tcmu/spell_check.py +176 -0
  91. tcmu-0.17.0/src/tcmu/timer.py +187 -0
  92. tcmu-0.17.0/src/tcmu/typing_utilities.py +25 -0
  93. tcmu-0.17.0/test/test_adf_properties.py +39 -0
  94. tcmu-0.17.0/test/test_atom_data.py +35 -0
  95. tcmu-0.17.0/test/test_basis_set_data.py +14 -0
  96. tcmu-0.17.0/test/test_concatenate_irc.py +54 -0
  97. tcmu-0.17.0/test/test_ensure_2d.py +79 -0
  98. tcmu-0.17.0/test/test_formula.py +27 -0
  99. tcmu-0.17.0/test/test_functional_data.py +48 -0
  100. tcmu-0.17.0/test/test_geometry.py +140 -0
  101. tcmu-0.17.0/test/test_input_reader.py +12 -0
  102. tcmu-0.17.0/test/test_molecules.py +93 -0
  103. tcmu-0.17.0/test/test_pathfunc.py +118 -0
  104. tcmu-0.17.0/test/test_result_class.py +71 -0
  105. tcmu-0.17.0/test/test_results.py +63 -0
  106. tcmu-0.17.0/test/test_results_orca.py +84 -0
  107. tcmu-0.17.0/test/test_spell_check.py +67 -0
  108. tcmu-0.17.0/test/test_vdd_analysis.py +171 -0
  109. 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.
@@ -0,0 +1,5 @@
1
+ include src/tcutility/results/input_blocks
2
+ include src/tcutility/data/*
3
+ include src/tcutility/data/_atom_data_info/*.txt
4
+ include src/tcutility/data/_atom_data_info/*.json
5
+ include src/tcutility/report/_char_widths.txt
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
+ [![Documentation](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_docs.yml/badge.svg)](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_docs.yml) [![Testing](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_python_versions.yml/badge.svg)](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_python_versions.yml) [![Publishing to PyPI](https://github.com/TheoChem-VU/TCMU/actions/workflows/pypi_publish.yml/badge.svg?branch=main)](https://github.com/TheoChem-VU/TCMU/actions/workflows/pypi_publish.yml)
63
+
64
+ [![TCMU version](https://badge.fury.io/py/TCMU.svg)](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
+ [![Documentation](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_docs.yml/badge.svg)](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_docs.yml) [![Testing](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_python_versions.yml/badge.svg)](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_python_versions.yml) [![Publishing to PyPI](https://github.com/TheoChem-VU/TCMU/actions/workflows/pypi_publish.yml/badge.svg?branch=main)](https://github.com/TheoChem-VU/TCMU/actions/workflows/pypi_publish.yml)
4
+
5
+ [![TCMU version](https://badge.fury.io/py/TCMU.svg)](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
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
tcmu-0.17.0/setup.py ADDED
@@ -0,0 +1,4 @@
1
+ from setuptools import setup
2
+
3
+ if __name__ == "__main__":
4
+ setup()
@@ -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
+ [![Documentation](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_docs.yml/badge.svg)](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_docs.yml) [![Testing](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_python_versions.yml/badge.svg)](https://github.com/TheoChem-VU/TCMU/actions/workflows/build_python_versions.yml) [![Publishing to PyPI](https://github.com/TheoChem-VU/TCMU/actions/workflows/pypi_publish.yml/badge.svg?branch=main)](https://github.com/TheoChem-VU/TCMU/actions/workflows/pypi_publish.yml)
63
+
64
+ [![TCMU version](https://badge.fury.io/py/TCMU.svg)](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,2 @@
1
+ [console_scripts]
2
+ tcmu = tcmu.cli_scripts.tcparser:tcmu
@@ -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