qccodec 0.7.6__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 (83) hide show
  1. qccodec-0.7.6/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
  2. qccodec-0.7.6/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  3. qccodec-0.7.6/.github/workflows/basic-code-quality.yaml +59 -0
  4. qccodec-0.7.6/.github/workflows/create-release.yaml +39 -0
  5. qccodec-0.7.6/.github/workflows/publish-to-pypi.yaml +36 -0
  6. qccodec-0.7.6/.github/workflows/test.yaml +33 -0
  7. qccodec-0.7.6/.gitignore +161 -0
  8. qccodec-0.7.6/.pre-commit-config.yaml +41 -0
  9. qccodec-0.7.6/.python-version +1 -0
  10. qccodec-0.7.6/.vscode/settings.json +48 -0
  11. qccodec-0.7.6/CHANGELOG.md +221 -0
  12. qccodec-0.7.6/CONTRIBUTING.md +142 -0
  13. qccodec-0.7.6/LICENSE +21 -0
  14. qccodec-0.7.6/PKG-INFO +148 -0
  15. qccodec-0.7.6/README.md +98 -0
  16. qccodec-0.7.6/docs/dev-decisions.md +15 -0
  17. qccodec-0.7.6/pyproject.toml +85 -0
  18. qccodec-0.7.6/scripts/format.sh +5 -0
  19. qccodec-0.7.6/scripts/release.py +134 -0
  20. qccodec-0.7.6/scripts/tests.sh +3 -0
  21. qccodec-0.7.6/src/qccodec/__init__.py +9 -0
  22. qccodec-0.7.6/src/qccodec/cli.py +34 -0
  23. qccodec-0.7.6/src/qccodec/codec.py +147 -0
  24. qccodec-0.7.6/src/qccodec/encoders/__init__.py +0 -0
  25. qccodec-0.7.6/src/qccodec/encoders/crest.py +135 -0
  26. qccodec-0.7.6/src/qccodec/encoders/terachem.py +74 -0
  27. qccodec-0.7.6/src/qccodec/exceptions.py +33 -0
  28. qccodec-0.7.6/src/qccodec/models.py +54 -0
  29. qccodec-0.7.6/src/qccodec/parsers/__init__.py +16 -0
  30. qccodec-0.7.6/src/qccodec/parsers/crest.py +379 -0
  31. qccodec-0.7.6/src/qccodec/parsers/terachem.py +348 -0
  32. qccodec-0.7.6/src/qccodec/parsers/utils.py +32 -0
  33. qccodec-0.7.6/src/qccodec/registry.py +202 -0
  34. qccodec-0.7.6/tests/__init__.py +0 -0
  35. qccodec-0.7.6/tests/conftest.py +279 -0
  36. qccodec-0.7.6/tests/data/__init__.py +0 -0
  37. qccodec-0.7.6/tests/data/crest/answers/__init__.py +0 -0
  38. qccodec-0.7.6/tests/data/crest/answers/conformers.py +453 -0
  39. qccodec-0.7.6/tests/data/crest/answers/crest_g98big_normal_modes.npy +0 -0
  40. qccodec-0.7.6/tests/data/crest/answers/frequencies.py +3 -0
  41. qccodec-0.7.6/tests/data/crest/answers/gradients.py +2 -0
  42. qccodec-0.7.6/tests/data/crest/answers/hessians.py +101 -0
  43. qccodec-0.7.6/tests/data/crest/answers/normal_modes.py +7 -0
  44. qccodec-0.7.6/tests/data/crest/answers/optimizations.py +355 -0
  45. qccodec-0.7.6/tests/data/crest/crest.engrad +20 -0
  46. qccodec-0.7.6/tests/data/crest/crest_conformers.xyz +123 -0
  47. qccodec-0.7.6/tests/data/crest/crest_rotamers.xyz +82 -0
  48. qccodec-0.7.6/tests/data/crest/crest_stdout.txt +23 -0
  49. qccodec-0.7.6/tests/data/crest/g98.out +33 -0
  50. qccodec-0.7.6/tests/data/crest/g98HF.out +31 -0
  51. qccodec-0.7.6/tests/data/crest/g98big.out +384 -0
  52. qccodec-0.7.6/tests/data/crest/hessian_stdout.txt +9 -0
  53. qccodec-0.7.6/tests/data/crest/numhess1 +20 -0
  54. qccodec-0.7.6/tests/data/crest/optstdout.txt +304 -0
  55. qccodec-0.7.6/tests/data/terachem/__init__.py +0 -0
  56. qccodec-0.7.6/tests/data/terachem/answers/__init__.py +0 -0
  57. qccodec-0.7.6/tests/data/terachem/answers/excited_states.py +2 -0
  58. qccodec-0.7.6/tests/data/terachem/answers/gradients.py +82 -0
  59. qccodec-0.7.6/tests/data/terachem/answers/hessians.py +5432 -0
  60. qccodec-0.7.6/tests/data/terachem/answers/trajectories.py +9 -0
  61. qccodec-0.7.6/tests/data/terachem/answers/trajectory.json +203 -0
  62. qccodec-0.7.6/tests/data/terachem/caffeine.frequencies.out +14533 -0
  63. qccodec-0.7.6/tests/data/terachem/caffeine.gradient.out +260 -0
  64. qccodec-0.7.6/tests/data/terachem/caffeine.tddft.out +683 -0
  65. qccodec-0.7.6/tests/data/terachem/failure.basis.out +175 -0
  66. qccodec-0.7.6/tests/data/terachem/failure.nocuda.out +157 -0
  67. qccodec-0.7.6/tests/data/terachem/hg.out +9 -0
  68. qccodec-0.7.6/tests/data/terachem/optim.xyz +20 -0
  69. qccodec-0.7.6/tests/data/terachem/water.energy.out +226 -0
  70. qccodec-0.7.6/tests/data/terachem/water.frequencies.out +1322 -0
  71. qccodec-0.7.6/tests/data/terachem/water.gradient.out +238 -0
  72. qccodec-0.7.6/tests/data/terachem/water.opt.out +464 -0
  73. qccodec-0.7.6/tests/data/terachem/water.tddft.out +406 -0
  74. qccodec-0.7.6/tests/test_cli.py +18 -0
  75. qccodec-0.7.6/tests/test_codec.py +35 -0
  76. qccodec-0.7.6/tests/test_crest_encoders.py +61 -0
  77. qccodec-0.7.6/tests/test_crest_parsers.py +232 -0
  78. qccodec-0.7.6/tests/test_models.py +13 -0
  79. qccodec-0.7.6/tests/test_parser_registry.py +42 -0
  80. qccodec-0.7.6/tests/test_registry.py +202 -0
  81. qccodec-0.7.6/tests/test_terachem_encoders.py +59 -0
  82. qccodec-0.7.6/tests/test_terachem_parsers.py +345 -0
  83. qccodec-0.7.6/uv.lock +796 -0
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: "[BUG] - "
5
+ labels: bug
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior. Please provide all necessary data and a runable python script that reproduces your error:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ **Expected behavior**
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ **Screenshots**
24
+ If applicable, add screenshots to help explain your problem.
25
+
26
+ **Additional context**
27
+ Add any other context about the problem here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: "[FEATURE] - "
5
+ labels: enhancement
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,59 @@
1
+ name: Basic Code Quality
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+ branches: [master]
8
+
9
+
10
+ jobs:
11
+ ruff:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v3
15
+ - name: Set up Python
16
+ uses: actions/setup-python@v5
17
+ with:
18
+ python-version-file: ".python-version"
19
+ - name: Install ruff
20
+ run: pip install ruff
21
+ - name: ruff
22
+ run: ruff check .
23
+
24
+ mypy:
25
+ runs-on: ubuntu-latest
26
+ steps:
27
+ - uses: actions/checkout@v3
28
+ - name: Set up Python
29
+ uses: actions/setup-python@v5
30
+ with:
31
+ python-version-file: ".python-version"
32
+ - name: Install uv
33
+ uses: astral-sh/setup-uv@v5
34
+ - name: Install the project
35
+ run: uv sync --all-extras --dev
36
+ - name: mypy
37
+ run: uv run mypy .
38
+
39
+ detect-secrets:
40
+ runs-on: ubuntu-latest
41
+ steps:
42
+ - uses: actions/checkout@v3
43
+ - name: Set up Python
44
+ uses: actions/setup-python@v5
45
+ with:
46
+ python-version-file: ".python-version"
47
+ - name: Install detect secrets
48
+ run: pip install detect-secrets
49
+ - name: Look for secrets
50
+ run: git ls-files -z | xargs -0 detect-secrets-hook -v
51
+
52
+ typos:
53
+ name: "spell check"
54
+ runs-on: ubuntu-latest
55
+ steps:
56
+ - uses: actions/checkout@v3
57
+ - uses: crate-ci/typos@master
58
+ with:
59
+ files: .
@@ -0,0 +1,39 @@
1
+ name: Create Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "*" # Match any tag
7
+ workflow_dispatch: # Enable manual triggering
8
+
9
+ jobs:
10
+ create-release:
11
+ name: Create GitHub Release
12
+ runs-on: ubuntu-latest
13
+ environment: release # Link to the protected environment
14
+
15
+ steps:
16
+ - name: Checkout code
17
+ uses: actions/checkout@v4
18
+
19
+ - name: Extract Release Notes
20
+ id: extract_notes
21
+ run: |
22
+ VERSION=${{ github.ref_name }}
23
+ sed -n "/## \\[$VERSION\\]/,/## \\[/p" CHANGELOG.md | sed '$d' | sed "s/## \\[$VERSION\\]/## $VERSION/" > RELEASE_NOTES.md
24
+
25
+ - name: Create GitHub Release
26
+ id: create_release
27
+ uses: actions/create-release@v1
28
+ with:
29
+ tag_name: ${{ github.ref_name }}
30
+ release_name: Release ${{ github.ref_name }}
31
+ body_path: ./RELEASE_NOTES.md
32
+ draft: false
33
+ prerelease: false
34
+ env:
35
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
36
+
37
+ - name: Output release URL
38
+ run: |
39
+ echo "Release URL: ${{ steps.create_release.outputs.html_url }}"
@@ -0,0 +1,36 @@
1
+ # https://github.com/marketplace/actions/pypi-publish
2
+
3
+ name: Publish to PyPI
4
+
5
+ on:
6
+ push:
7
+ tags: # Only publish on tagged commits
8
+ - "*"
9
+
10
+ jobs:
11
+ build-and-publish:
12
+ name: Build and publish Python 🐍 distributions 📦 to PyPI
13
+ runs-on: ubuntu-latest
14
+ environment:
15
+ name: pypi
16
+ url: https://pypi.org/project/qccodec/
17
+ permissions:
18
+ id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
19
+
20
+ steps:
21
+ - name: Check out source repository
22
+ uses: actions/checkout@v2
23
+
24
+ - name: Set up Python
25
+ uses: actions/setup-python@v5
26
+ with:
27
+ python-version-file: ".python-version"
28
+
29
+ - name: Install uv
30
+ uses: astral-sh/setup-uv@v5
31
+
32
+ - name: Build distribution 📦
33
+ run: uv build
34
+
35
+ - name: Publish package 📤 to PyPI
36
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,33 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+ branches: [master]
8
+
9
+ jobs:
10
+ tests:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v3
14
+
15
+ - name: Set up Python
16
+ uses: actions/setup-python@v5
17
+ with:
18
+ python-version-file: ".python-version"
19
+
20
+ - name: Install uv
21
+ uses: astral-sh/setup-uv@v5
22
+
23
+ - name: Install repo
24
+ run: uv sync --all-extras --dev
25
+
26
+ - name: Run tests
27
+ run: bash scripts/tests.sh
28
+
29
+ - name: Upload coverage HTML
30
+ uses: actions/upload-artifact@v4
31
+ with:
32
+ name: htmlcov
33
+ path: htmlcov
@@ -0,0 +1,161 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+ !test/data/
54
+
55
+ # Translations
56
+ *.mo
57
+ *.pot
58
+
59
+ # Django stuff:
60
+ *.log
61
+ local_settings.py
62
+ db.sqlite3
63
+ db.sqlite3-journal
64
+
65
+ # Flask stuff:
66
+ instance/
67
+ .webassets-cache
68
+
69
+ # Scrapy stuff:
70
+ .scrapy
71
+
72
+ # Sphinx documentation
73
+ docs/_build/
74
+
75
+ # PyBuilder
76
+ .pybuilder/
77
+ target/
78
+
79
+ # Jupyter Notebook
80
+ .ipynb_checkpoints
81
+
82
+ # IPython
83
+ profile_default/
84
+ ipython_config.py
85
+
86
+ # pyenv
87
+ # For a library or package, you might want to ignore these files since the code is
88
+ # intended to run in multiple environments; otherwise, check them in:
89
+ # .python-version
90
+
91
+ # pipenv
92
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
93
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
94
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
95
+ # install all needed dependencies.
96
+ #Pipfile.lock
97
+
98
+ # poetry
99
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
100
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
101
+ # commonly ignored for libraries.
102
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
103
+ #poetry.lock
104
+
105
+ # pdm
106
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
107
+ #pdm.lock
108
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
109
+ # in version control.
110
+ # https://pdm.fming.dev/#use-with-ide
111
+ .pdm.toml
112
+
113
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
114
+ __pypackages__/
115
+
116
+ # Celery stuff
117
+ celerybeat-schedule
118
+ celerybeat.pid
119
+
120
+ # SageMath parsed files
121
+ *.sage.py
122
+
123
+ # Environments
124
+ .env
125
+ .venv
126
+ env/
127
+ venv/
128
+ ENV/
129
+ env.bak/
130
+ venv.bak/
131
+
132
+ # Spyder project settings
133
+ .spyderproject
134
+ .spyproject
135
+
136
+ # Rope project settings
137
+ .ropeproject
138
+
139
+ # mkdocs documentation
140
+ /site
141
+
142
+ # mypy
143
+ .mypy_cache/
144
+ .dmypy.json
145
+ dmypy.json
146
+
147
+ # Pyre type checker
148
+ .pyre/
149
+
150
+ # pytype static type analyzer
151
+ .pytype/
152
+
153
+ # Cython debug symbols
154
+ cython_debug/
155
+
156
+ # PyCharm
157
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
158
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
159
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
160
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
161
+ #.idea/
@@ -0,0 +1,41 @@
1
+ # See https://pre-commit.com for more information
2
+ # See https://pre-commit.com/hooks.html for more hooks
3
+ repos:
4
+ - repo: https://github.com/pre-commit/pre-commit-hooks
5
+ rev: v4.4.0
6
+ hooks:
7
+ - id: check-yaml
8
+ - id: check-added-large-files
9
+ args: ["--maxkb=250"]
10
+ exclude: caffeine.frequencies.out
11
+ - repo: https://github.com/Yelp/detect-secrets
12
+ rev: v1.4.0
13
+ hooks:
14
+ - id: detect-secrets
15
+ stages: [pre-commit]
16
+ exclude: uv.lock
17
+ - repo: https://github.com/charliermarsh/ruff-pre-commit
18
+ # Ruff version.
19
+ rev: "v0.8.3"
20
+ hooks:
21
+ - id: ruff
22
+ args: [--fix, --exit-non-zero-on-fix]
23
+ - repo: https://github.com/pre-commit/mirrors-mypy
24
+ rev: v1.1.1
25
+ hooks:
26
+ - id: mypy
27
+ additional_dependencies:
28
+ [tokenize-rt==3.2.0, types-paramiko, types-toml, qcio>=0.14.0]
29
+ - repo: https://github.com/crate-ci/typos
30
+ rev: v1.24.5
31
+ hooks:
32
+ - id: typos
33
+ - repo: local
34
+ hooks:
35
+ - id: tests
36
+ name: tests
37
+ stages: [pre-push]
38
+ language: system
39
+ entry: uv run pytest
40
+ types: [python]
41
+ pass_filenames: false
@@ -0,0 +1 @@
1
+ 3.9
@@ -0,0 +1,48 @@
1
+ {
2
+ "python.formatting.provider": "black",
3
+ "cSpell.words": [
4
+ "allclose",
5
+ "calcinfo",
6
+ "calctype",
7
+ "calctypes",
8
+ "crestopt",
9
+ "CUDA",
10
+ "dataclasses",
11
+ "disp",
12
+ "ENGRAD",
13
+ "freqs",
14
+ "Hartree",
15
+ "htmlcov",
16
+ "maxiter",
17
+ "natom",
18
+ "natoms",
19
+ "ndarray",
20
+ "nmodes",
21
+ "nocuda",
22
+ "numhess",
23
+ "optim",
24
+ "OPTLOG",
25
+ "pathconf",
26
+ "psutil",
27
+ "qcel",
28
+ "qcio",
29
+ "qccodec",
30
+ "rotamer",
31
+ "rotamers",
32
+ "runtypes",
33
+ "singlepoint",
34
+ "spinmult",
35
+ "tcin",
36
+ "tcout",
37
+ "tcparse",
38
+ "tcstdout",
39
+ "tddft",
40
+ "tensorbox",
41
+ "Tera",
42
+ "terachem",
43
+ "topo",
44
+ "traj",
45
+ "wavenumber",
46
+ "wavenumbers"
47
+ ]
48
+ }
@@ -0,0 +1,221 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [unreleased]
8
+
9
+ ## [0.7.6] - 2025-04-01
10
+
11
+ ### Added
12
+
13
+ - Logging to `decode` clearly detail what parsing actions are being taken and why on various filetypes.
14
+
15
+ ### Changed
16
+
17
+ - Renamed package from `qcparse` -> `qccodec`.
18
+ - Removed `poetry` in favor of `hatchling` build system and `uv` for project management.
19
+ - 🚨 Refactored top-level `parse` function to a new signature `decode(program: str, calctype: CalcType, *, stdout: Optional[str] = None, directory: Optional[Union[str, Path]] = None, input_data: Optional[StructuredInputs] = None) -> StructureResults`.
20
+ - Changed parsers to no longer set data on a data collector object but to rather be pure functions returning their parsed data.
21
+ - Renamed `@parser` decorator to `@register` and accept `target` kwarg that tells the registry where to place the parsed data on the data collector object.
22
+ - `DataCollector` now inherits from `dict` rather than being a `SimpleNamespace`.
23
+ - Switched classes from pydantic `BaseModel` to `dataclasses` since I'm not using any advanced validation logic.
24
+
25
+ ### Removed
26
+
27
+ - 🚨 `get_file_contents` function since we no longer pass filenames to top-level `decode` (formerly `parse`) function.
28
+ - 🚨 `parse_results` function previously kept for backwards compatibility.
29
+ - `pydantic` dependency.
30
+
31
+ ## [0.7.5] - 2025-03-24
32
+
33
+ ### Added
34
+
35
+ - TeraChem `parse_excited_states` function.
36
+
37
+ ## [0.7.4] - 2025-02-25
38
+
39
+ ### Changed
40
+
41
+ - CREST encoder now selects `min(os.cpu_count(), 16)` for `threads` if not set by the user.
42
+
43
+ ## [0.7.3] - 2025-02-08
44
+
45
+ ### Fixed
46
+
47
+ - Bug in parsing CREST's `g98.out` file for more than three frequencies.
48
+
49
+ ## [0.7.2] - 2025-02-05
50
+
51
+ ### Added
52
+
53
+ - Parse CREST's `numhess` g98.out file for frequency and normal mode displacement vectors.
54
+
55
+ ## [0.7.1] - 2025-01-15
56
+
57
+ ### Changed
58
+
59
+ - More flexibly defined `qcio` dependency version from `^0.11.8` to `>=0.12.1` to account for the missing `eval_type_backport` package.
60
+
61
+ ## [0.7.0] - 2024-12-20
62
+
63
+ ### Changed
64
+
65
+ - 🚨 Dropped Python 3.8 support.
66
+
67
+ ### Removed
68
+
69
+ - `black` and `isort` in favor of `ruff`.
70
+
71
+ ## [0.6.4] - 2024-10-01
72
+
73
+ ### Added
74
+
75
+ - Encoders and parsers for CREST to support `energy`, `gradient`, `hessian`, and `optimization` calculations.
76
+
77
+ ## [0.6.3] - 2024-09-12
78
+
79
+ ### Added
80
+
81
+ - `parse_optimization_dir(...) -> OptimizationResults` for TeraChem.
82
+
83
+ ## [0.6.2] - 2024-08-13
84
+
85
+ ### Added
86
+
87
+ - `CREST` encoder and directory parser for conformer search output directories.
88
+
89
+ ## [0.6.1] - 2024-08-08
90
+
91
+ ### Added
92
+
93
+ - Program version parser for `CREST` stdout.
94
+
95
+ ## [0.6.0] - 2024-06-10
96
+
97
+ ### Changed
98
+
99
+ - Updated to `qcio 0.10.0` to use new `Structure` rather than `Molecule` nomenclature.
100
+
101
+ ## [0.5.3] - 2024-04-04
102
+
103
+ ### Changed
104
+
105
+ - TeraChem `parse_git_commit` updated to `parse_version_control_details` to accommodate older versions of TeraChem compiled from the `Hg` days.
106
+
107
+ ### Removed
108
+
109
+ - TeraChem `parse_version` parser. It was unused given the switch to only parsing `SinglePointResults` objects and not `Provenance` objects as well. The `parse_version_string` function is used by `qcop` to get the version of the program. We do not need to set the version of the program at `SinglePointResults.extras.program_version` anymore.
110
+
111
+ ## [0.5.2] - 2023-09-27
112
+
113
+ ### Removed
114
+
115
+ - All input parsing details from the library.
116
+
117
+ ### Added
118
+
119
+ - `encode` top level function and encoder for TeraChem input files.
120
+
121
+ ### Changed
122
+
123
+ - Added `FileType.stdout` as default `filetype` argument to `parse` decorator to reduce boilerplate in parsers.
124
+
125
+ ## [0.5.1] - 2023-09-19
126
+
127
+ ### Changed
128
+
129
+ - Dropped Python dependency from `^3.8.1` to `^3.8`. Can't remember what older dependency required `3.8.1` but it's not needed anymore.
130
+
131
+ ## [0.5.0] - 2023-08-31
132
+
133
+ ### Changed
134
+
135
+ - Updated `pydantic` from `v1` -> `v2`.
136
+
137
+ ## [0.4.1] - 2023-07-19
138
+
139
+ ### Changed
140
+
141
+ - Updated `qcio` from `0.3.0` -> `0.4.0`.
142
+
143
+ ## [0.4.0] - 2023-07-17
144
+
145
+ ### Changed
146
+
147
+ - Updated to used `qcio>=0.3.0` flattened models and the `SinglePointResults`object.
148
+
149
+ ## [0.3.2] - 2023-06-29
150
+
151
+ ### Fixed
152
+
153
+ - Updated package description in pyproject.toml from TeraChem specific parsing and MolSSI to all QC packages and qcio.
154
+
155
+ ## [0.3.1] - 2023-06-29
156
+
157
+ ### Added
158
+
159
+ - Git commit parsing for TeraChem as part of version parsing
160
+
161
+ ### Changed
162
+
163
+ - `qcio` `>=0.1.0` -> `>=0.2.0`
164
+
165
+ ## [0.3.0] - 2023-06-28
166
+
167
+ ### Changed
168
+
169
+ - Dropped support for `QCSchema` models and changed to [qcio](https://github.com/coltonbh/qcio) data models.
170
+ - `parse` function now raises `NotImplementedError` and the default use case is to use `parse_computed_prop` instead and ignore inputs and provenance data. This is the minimum spec since QC programs can be powered using structured inputs and [qcop](https://github.com/coltonbh/qcop). I may go back to parsing entire `SinglePointSuccess/FailedOutput` objects if use cases arise.
171
+
172
+ ## [0.2.1] - 2023-03-25
173
+
174
+ ### Changed
175
+
176
+ - Generalized `CUDA error:` regex to catch all CUDA errors.
177
+
178
+ ## [0.2.0] - 2023-03-24
179
+
180
+ ### Added
181
+
182
+ - `cli` interface for parsing TeraChem outputs from the command line.
183
+ - `parse_natoms`, `parse_nmo`, `parse_total_charge`, `parse_spin_multiplicity`
184
+
185
+ ### Removed
186
+
187
+ - Removed Hessian matrix dimension checking from `parse_hessian`. Dimension validation is already done via `pydantic` on the `AtomicResult` object.
188
+
189
+ ## [0.1.0] - 2023-03-23
190
+
191
+ ### Added
192
+
193
+ - Basic parsers for energy, gradient, Hessian (frequencies) calculations.
194
+ - Can return either `AtomicResult` or `FailedOperation` objects depending on whether calculation succeeded or failed.
195
+ - Tests for all parsers and the main `parse` function.
196
+
197
+ [unreleased]: https://github.com/coltonbh/qccodec/compare/0.7.6...HEAD
198
+ [0.7.6]: https://github.com/coltonbh/qccodec/releases/tag/0.7.6
199
+ [0.7.5]: https://github.com/coltonbh/qccodec/releases/tag/0.7.5
200
+ [0.7.4]: https://github.com/coltonbh/qccodec/releases/tag/0.7.4
201
+ [0.7.3]: https://github.com/coltonbh/qccodec/releases/tag/0.7.3
202
+ [0.7.2]: https://github.com/coltonbh/qccodec/releases/tag/0.7.2
203
+ [0.7.1]: https://github.com/coltonbh/qccodec/releases/tag/0.7.1
204
+ [0.7.0]: https://github.com/coltonbh/qccodec/releases/tag/0.7.0
205
+ [0.6.4]: https://github.com/coltonbh/qccodec/releases/tag/0.6.4
206
+ [0.6.3]: https://github.com/coltonbh/qccodec/releases/tag/0.6.3
207
+ [0.6.2]: https://github.com/coltonbh/qccodec/releases/tag/0.6.2
208
+ [0.6.1]: https://github.com/coltonbh/qccodec/releases/tag/0.6.1
209
+ [0.6.0]: https://github.com/coltonbh/qccodec/releases/tag/0.6.0
210
+ [0.5.3]: https://github.com/coltonbh/qccodec/releases/tag/0.5.3
211
+ [0.5.2]: https://github.com/coltonbh/qccodec/releases/tag/0.5.2
212
+ [0.5.1]: https://github.com/coltonbh/qccodec/releases/tag/0.5.1
213
+ [0.5.0]: https://github.com/coltonbh/qccodec/releases/tag/0.5.0
214
+ [0.4.1]: https://github.com/coltonbh/qccodec/releases/tag/0.4.1
215
+ [0.4.0]: https://github.com/coltonbh/qccodec/releases/tag/0.4.0
216
+ [0.3.2]: https://github.com/coltonbh/qccodec/releases/tag/0.3.2
217
+ [0.3.1]: https://github.com/coltonbh/qccodec/releases/tag/0.3.1
218
+ [0.3.0]: https://github.com/coltonbh/qccodec/releases/tag/0.3.0
219
+ [0.2.1]: https://github.com/coltonbh/qccodec/releases/tag/0.2.1
220
+ [0.2.0]: https://github.com/coltonbh/qccodec/releases/tag/0.2.0
221
+ [0.1.0]: https://github.com/coltonbh/qccodec/releases/tag/0.1.0