Renamed package from qcop to qccompute - #71
Conversation
There was a problem hiding this comment.
Pull request overview
Renames the Python distribution/import namespace from qcop to qccompute, updating package metadata, docs/examples/tests, and aligning exception payload naming with qcdata.ProgramOutput.
Changes:
- Rename project/package references (
qcop→qccompute) across packaging config, docs, examples, scripts, and tests. - Update exception payload attribute from
.resultsto.prog_output(with.resultskept as a read-only alias). - Add/adjust adapter package initialization and introduce a
TeraChemPBSAdapter.
Reviewed changes
Copilot reviewed 52 out of 57 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| uv.lock | Updates editable package name to qccompute. |
| pyproject.toml | Renames project + URLs; updates Ruff isort first-party module name. |
| mkdocs.yml | Updates site metadata/links and watch path to src/qccompute. |
| scripts/tests.sh | Updates coverage target from qcop to qccompute. |
| src/qccompute/init.py | Adds package entrypoint exports and version discovery. |
| src/qccompute/py.typed | Ensures package remains typed for downstream type checkers. |
| src/qccompute/main.py | Updates top-level compute behavior to attach prog_output to exceptions. |
| src/qccompute/utils.py | Updates error messages/docstrings to reference qccompute. |
| src/qccompute/exceptions.py | Renames base exception + payload attribute to prog_output; adds .results alias. |
| src/qccompute/adapters/init.py | Ensures adapters are imported so registry population works on import. |
| src/qccompute/adapters/base.py | Renames internal variables/results plumbing to prog_output. |
| src/qccompute/adapters/utils.py | Updates imports to qccompute.exceptions. |
| src/qccompute/adapters/xtb.py | Updates exception imports and install hints to qccompute[...]. |
| src/qccompute/adapters/orca.py | Updates exception imports to qccompute.exceptions. |
| src/qccompute/adapters/crest.py | Updates exception imports to qccompute.exceptions. |
| src/qccompute/adapters/file.py | Updates base adapter import path. |
| src/qccompute/adapters/geometric.py | Updates exception types and internal naming/docstrings. |
| src/qccompute/adapters/qcengine.py | Updates exception imports and comment wording. |
| src/qccompute/adapters/terachem.py | Updates exception imports to qccompute.exceptions. |
| src/qccompute/adapters/terachem_fe.py | Updates exception imports/install hints; uses prog_output naming. |
| src/qccompute/adapters/terachem_pbs.py | Adds PBS adapter variant inheriting FE behavior. |
| tests/conftest.py | Updates imports to qccompute modules. |
| tests/test_main.py | Updates imports and exception class naming (QCComputeBaseError). |
| tests/test_exceptions.py | Updates pickling tests to use .prog_output and .results alias behavior. |
| tests/test_base_adapters.py | Updates adapter/exception imports and .prog_output assertions. |
| tests/test_utils.py | Updates utility/exception imports to qccompute. |
| tests/test_xtb.py | Updates adapter/exception imports to qccompute. |
| tests/test_qcng_compat.py | Updates imports and renames tests/comments to qccompute. |
| tests/integration_tests/test_xtb.py | Updates top-level compute import to qccompute. |
| tests/integration_tests/test_terachem_integration.py | Updates compute import to qccompute. |
| tests/integration_tests/test_geometric_integration.py | Updates adapter import to qccompute. |
| tests/integration_tests/test_crest.py | Updates top-level compute import to qccompute. |
| tests/adaptors/test_terachem.py | Updates adapter imports and monkeypatch paths to qccompute. |
| tests/adaptors/test_geometric.py | Updates adapter imports, exception payload kwarg to prog_output, and test names. |
| tests/adaptors/test_file.py | Updates adapter imports to qccompute. |
| examples/xtb.py | Updates import and variable naming to prog_output. |
| examples/terachem_opt.py | Updates imports and exception handling to QCComputeBaseError/.prog_output. |
| examples/single_point.py | Updates imports and exception handling to QCComputeBaseError/.prog_output. |
| examples/rdkit.py | Updates imports and exception handling to QCComputeBaseError/.prog_output. |
| examples/hessian.py | Updates imports and exception handling to QCComputeBaseError/.prog_output. |
| examples/gradient.py | Updates imports and exception handling to QCComputeBaseError/.prog_output. |
| examples/geometric.py | Updates imports and exception handling to QCComputeBaseError/.prog_output. |
| examples/file_input.py | Updates import and variable naming to prog_output. |
| examples/crest.py | Updates imports and exception handling to QCComputeBaseError/.prog_output. |
| docs/CNAME | Updates docs domain to qccompute.coltonhicks.com. |
| docs/index.md | Updates docs landing page for rename and new exception payload naming. |
| docs/examples/overview.md | Updates example imports and mkdocstrings reference to qccompute. |
| docs/programs/overview.md | Updates narrative references from qcop to qccompute. |
| docs/programs/qcengine.md | Updates text and API references to qccompute. |
| docs/programs/xtb.md | Updates mkdocstrings target to qccompute. |
| docs/programs/terachem.md | Updates mkdocstrings targets to qccompute. |
| docs/programs/geometric.md | Updates mkdocstrings target to qccompute. |
| docs/programs/crest.md | Updates mkdocstrings target to qccompute. |
| docs/dev-docs/dev-decisions.md | Updates exception payload naming in dev decision note. |
| README.md | Updates public-facing README for rename and new exception payload naming. |
| CHANGELOG.md | Updates changelog references/links from qcop to qccompute. |
Comments suppressed due to low confidence (2)
src/qccompute/main.py:60
e.args = (*e.args, prog_output)appends the ProgramOutput rather than replacing the existingprog_outputslot in the exception args (which is currentlyNone). If anything relies on positional args (per the comment inQCComputeBaseErrorabout serialization),e.args[1]will remainNoneand the real output ends up at the end of the tuple. Prefer rebuildinge.argsso theprog_outputposition is updated (or re-instantiating the exception withprog_output).
src/qccompute/adapters/qcengine.py:50- Remove the trailing whitespace on this blank line to avoid noisy diffs and potential lint failures.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|  | ||
|
|
||
| Single point calculations display their results in a table. | ||
|
|
||
|  | ||
|  |
There was a problem hiding this comment.
The relative image paths here look incorrect for MkDocs: docs/index.md sits inside docs/, so ./docs/assets/... resolves to docs/docs/assets/.... Use a path relative to docs/ (e.g., ./assets/...) so the images render in the built site.
| ``` | ||
|
|
||
| The behavior of `compute()` and `compute_args()` can be tuned by passing in keyword arguments like `collect_files` shown above. Arguments can modify which scratch directory location to use, whether to delete or keep the scratch files after a calculation completes, what files to collect from a calculation, whether to stream the program logs in real time as the program executes, and whether to propagate a wavefunction through a series of calculations. Arguments also include hooks for passing in update functions that can be called as a program executes in real time. See the [compute method docstring](https://github.com/coltonbh/qcop/blob/83868df51d241ffae3497981dfc3c72235319c6e/qcop/adapters/base.py#L57-L123) for more details. | ||
| The behavior of `compute()` and `compute_args()` can be tuned by passing in keyword arguments like `collect_files` shown above. Arguments can modify which scratch directory location to use, whether to delete or keep the scratch files after a calculation completes, what files to collect from a calculation, whether to stream the program logs in real time as the program executes, and whether to propagate a wavefunction through a series of calculations. Arguments also include hooks for passing in update functions that can be called as a program executes in real time. See the [compute method docstring](https://github.com/coltonbh/qccompute/blob/83868df51d241ffae3497981dfc3c72235319c6e/qccompute/adapters/base.py#L57-L123) for more details. |
There was a problem hiding this comment.
This GitHub link to base.py appears to omit the src/ prefix used in this repository (the file lives under src/qccompute/...). As written, it likely 404s; update the URL to match the actual path so the documentation link remains valid.
| The behavior of `compute()` and `compute_args()` can be tuned by passing in keyword arguments like `collect_files` shown above. Arguments can modify which scratch directory location to use, whether to delete or keep the scratch files after a calculation completes, what files to collect from a calculation, whether to stream the program logs in real time as the program executes, and whether to propagate a wavefunction through a series of calculations. Arguments also include hooks for passing in update functions that can be called as a program executes in real time. See the [compute method docstring](https://github.com/coltonbh/qccompute/blob/83868df51d241ffae3497981dfc3c72235319c6e/qccompute/adapters/base.py#L57-L123) for more details. | |
| The behavior of `compute()` and `compute_args()` can be tuned by passing in keyword arguments like `collect_files` shown above. Arguments can modify which scratch directory location to use, whether to delete or keep the scratch files after a calculation completes, what files to collect from a calculation, whether to stream the program logs in real time as the program executes, and whether to propagate a wavefunction through a series of calculations. Arguments also include hooks for passing in update functions that can be called as a program executes in real time. See the [compute method docstring](https://github.com/coltonbh/qccompute/blob/83868df51d241ffae3497981dfc3c72235319c6e/src/qccompute/adapters/base.py#L57-L123) for more details. |
| ``` | ||
|
|
||
| The behavior of `compute()` and `compute_args()` can be tuned by passing in keyword arguments like `collect_files` shown above. Arguments can modify which scratch directory location to use, whether to delete or keep the scratch files after a calculation completes, what files to collect from a calculation, whether to stream the program logs in real time as the program executes, and whether to propagate a wavefunction through a series of calculations. Arguments also include hooks for passing in update functions that can be called as a program executes in real time. See the [compute method docstring](https://github.com/coltonbh/qcop/blob/83868df51d241ffae3497981dfc3c72235319c6e/qcop/adapters/base.py#L57-L123) for more details. | ||
| The behavior of `compute()` and `compute_args()` can be tuned by passing in keyword arguments like `collect_files` shown above. Arguments can modify which scratch directory location to use, whether to delete or keep the scratch files after a calculation completes, what files to collect from a calculation, whether to stream the program logs in real time as the program executes, and whether to propagate a wavefunction through a series of calculations. Arguments also include hooks for passing in update functions that can be called as a program executes in real time. See the [compute method docstring](https://github.com/coltonbh/qccompute/blob/83868df51d241ffae3497981dfc3c72235319c6e/qccompute/adapters/base.py#L57-L123) for more details. |
There was a problem hiding this comment.
This GitHub link to base.py appears to omit the src/ prefix used in this repository (the file lives under src/qccompute/...). As written, it likely 404s; update the URL to match the actual path so the README link remains valid.
| The behavior of `compute()` and `compute_args()` can be tuned by passing in keyword arguments like `collect_files` shown above. Arguments can modify which scratch directory location to use, whether to delete or keep the scratch files after a calculation completes, what files to collect from a calculation, whether to stream the program logs in real time as the program executes, and whether to propagate a wavefunction through a series of calculations. Arguments also include hooks for passing in update functions that can be called as a program executes in real time. See the [compute method docstring](https://github.com/coltonbh/qccompute/blob/83868df51d241ffae3497981dfc3c72235319c6e/qccompute/adapters/base.py#L57-L123) for more details. | |
| The behavior of `compute()` and `compute_args()` can be tuned by passing in keyword arguments like `collect_files` shown above. Arguments can modify which scratch directory location to use, whether to delete or keep the scratch files after a calculation completes, what files to collect from a calculation, whether to stream the program logs in real time as the program executes, and whether to propagate a wavefunction through a series of calculations. Arguments also include hooks for passing in update functions that can be called as a program executes in real time. See the [compute method docstring](https://github.com/coltonbh/qccompute/blob/83868df51d241ffae3497981dfc3c72235319c6e/src/qccompute/adapters/base.py#L57-L123) for more details. |
| # Program not in qccompute, but in qcn | ||
| # Will raise qcengine.exceptions.ResourceError: Program mrchem is registered with |
There was a problem hiding this comment.
Typo in comment: qcn looks like it should be qcng (QCEngine) to match the surrounding text and variable names.
5a9bece to
a6c8fb5
Compare
a6c8fb5 to
86deb41
Compare
No description provided.