Skip to content

Updated from qcio to qcdata. - #70

Merged
coltonbh merged 3 commits into
masterfrom
feature-use-qcdata
Mar 26, 2026
Merged

Updated from qcio to qcdata.#70
coltonbh merged 3 commits into
masterfrom
feature-use-qcdata

Conversation

@coltonbh

Copy link
Copy Markdown
Collaborator

No description provided.

@coltonbh
coltonbh force-pushed the feature-use-qcdata branch from 46dc146 to 871aa5b Compare March 26, 2026 22:42

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates qcop from qcio to qcdata data structures across the library, tests, examples, and documentation, along with lockfile/dependency updates to match the new ecosystem versions.

Changes:

  • Replace qcio imports/usages with qcdata equivalents and rename ResultsProgramOutput throughout.
  • Update adapters to use qcdata helper modules/types and adjust a few runtime behaviors (e.g., ORCA missing executable handling).
  • Refresh packaging/lockfile/docs/examples/tests to reflect new dependencies and naming.

Reviewed changes

Copilot reviewed 40 out of 41 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
uv.lock Bumps locked deps to versions compatible with qcdata (e.g., qccodec, tcpb) and replaces qcio with qcdata.
pyproject.toml Switches runtime deps to qcdata>=0.17.0, updates related versions/URLs, and tweaks mypy config.
.pre-commit-config.yaml Updates mypy hook version/config and swaps type-check deps from qcio to qcdata.
.vscode/settings.json Adds qcdata to spellcheck/word list.
src/qcop/utils.py Updates qcio imports to qcdata.
src/qcop/main.py Updates top-level API typing/exception output object construction to ProgramOutput.
src/qcop/exceptions.py Migrates exception payload typing from Results to ProgramOutput.
src/qcop/adapters/base.py Migrates adapter output type to ProgramOutput and updates file/wfn collection plumbing for qcdata.
src/qcop/adapters/utils.py Updates Provenance and helper type imports to qcdata.
src/qcop/adapters/file.py Updates FileInput/Files imports to qcdata.
src/qcop/adapters/xtb.py Updates qcio imports/docs to qcdata.
src/qcop/adapters/terachem_fe.py Updates qcio imports/docs to qcdata.
src/qcop/adapters/terachem.py Updates types to ProgramOutput for wavefunction propagation signatures.
src/qcop/adapters/qcengine.py Switches qcio.qcel helpers to qcdata.qcel and updates comments.
src/qcop/adapters/orca.py Updates imports to qcdata and raises ProgramNotFoundError when ORCA executable is missing.
src/qcop/adapters/geometric.py Renames internal trajectory/plumbing from qcio_* to qcdata_* and updates types to ProgramOutput.
src/qcop/adapters/crest.py Updates qcio imports/docs to qcdata.
tests/conftest.py Migrates fixtures from Results to ProgramOutput and updates provenance strings.
tests/test_main.py Updates imports/types to qcdata/ProgramOutput.
tests/test_base_adapters.py Migrates assertions/docs from Results to ProgramOutput.
tests/test_xtb.py Updates qcio imports to qcdata.
tests/integration_tests/test_xtb.py Updates qcio imports to qcdata.
tests/integration_tests/test_crest.py Updates qcio imports to qcdata.
tests/integration_tests/test_terachem_integration.py Updates qcio imports to qcdata.
tests/integration_tests/test_geometric_integration.py Migrates Results to ProgramOutput in integration assertions.
tests/adaptors/test_file.py Updates qcio imports to qcdata.
tests/adaptors/test_geometric.py Migrates Results to ProgramOutput and renames trajectory attribute usage.
examples/xtb.py Updates qcio imports to qcdata.
examples/terachem_opt.py Updates qcio imports and clarifies output naming as ProgramOutput.
examples/single_point.py Updates qcio imports and clarifies output naming as ProgramOutput.
examples/rdkit.py Updates qcio imports and clarifies output naming as ProgramOutput.
examples/hessian.py Updates qcio imports and clarifies output naming as ProgramOutput.
examples/gradient.py Updates qcio imports and clarifies output naming as ProgramOutput.
examples/geometric.py Updates qcio imports to qcdata.
examples/file_input.py Updates qcio imports to qcdata.
examples/crest.py Updates qcio imports and clarifies output naming as ProgramOutput.
docs/index.md Updates docs narrative/examples/links from qcio to qcdata.
docs/programs/overview.md Updates qcio reference/link to qcdata.
docs/examples/overview.md Updates example snippets to use qcdata/ProgramOutput.
docs/dev-docs/dev-decisions.md Updates developer notes from Results to ProgramOutput.
README.md Updates README narrative/examples from qcio to qcdata and Results to ProgramOutput.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tests/test_main.py Outdated
Comment on lines 20 to 22
result = compute("python", file_inp)
isinstance(result, Results)
isinstance(result, ProgramOutput)
assert result.logs == "hello world\n"

Copilot AI Mar 26, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isinstance(result, ProgramOutput) is not asserted, so this test doesn't actually verify the return type. Convert this to an assertion (e.g., assert isinstance(...)) so a regression would fail the test.

Copilot uses AI. Check for mistakes.
Comment thread src/qcop/adapters/file.py Outdated
Comment thread README.md Outdated
Then in a Jupyter notebook import the `qcio` view module and call `view.view(...)` passing it one or any number of `qcio` objects you want to visualizing including `Structure` objects or any `Results` object. You may also pass an array of `titles` and/or `subtitles` to add additional information to the molecular structure display. If no titles are passed `qcio` with look for `Structure` identifiers such as a name or SMILES to label the `Structure`.
Then in a Jupyter notebook import the `qcdata` view module and call `view.view(...)` passing it one or any number of `qcdata` objects you want to visualize, including `Structure` objects or any `ProgramOutput` object. You may also pass arrays of `titles` and/or `subtitles` to add additional information to the molecular structure display. If no titles are passed, `qcdata` will look for `Structure` identifiers such as a name or SMILES to label the `Structure`.

![Structure Viewer](https://public.coltonhicks.com/assets/qcio/structure_viewer.png)

Copilot AI Mar 26, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The README now references qcdata throughout, but this image URL still points at the old qcio asset path. Update the link to the qcdata asset (or another correct location) to keep the documentation consistent.

Suggested change
![Structure Viewer](https://public.coltonhicks.com/assets/qcio/structure_viewer.png)
![Structure Viewer](./docs/assets/structure_viewer.png)

Copilot uses AI. Check for mistakes.
coltonbh and others added 2 commits March 26, 2026 15:44
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@coltonbh
coltonbh force-pushed the feature-use-qcdata branch from fe52a0d to 8645299 Compare March 26, 2026 22:49
@coltonbh
coltonbh merged commit 8b5c8bd into master Mar 26, 2026
8 of 9 checks passed
@coltonbh
coltonbh deleted the feature-use-qcdata branch March 26, 2026 22:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants