Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ jobs:
- setuptools-scm
# Core
- python
- qcelemental ==0.50.0rc3
- qcelemental >=0.50.0rc5
- qcengine >=0.50rc1 # TODO temp
- pydantic
# Testing
Expand Down Expand Up @@ -212,7 +212,7 @@ jobs:
- setuptools-scm
# Core
- python
- qcelemental ==0.50.0rc3
- qcelemental >=0.50.0rc5
# Docs
- numpydoc
- docutils
Expand Down
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ keywords:
- mbe
- schema
license: BSD-3-Clause
version: 0.6.1
date-released: '2026-03-11'
version: 0.7.1
date-released: '2026-04-30'
preferred-citation:
type: article
authors:
Expand Down
18 changes: 18 additions & 0 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,24 @@ Changelog

:docs:`dev` for latest.

.. _`sec:cl071`:

v0.7.1 / 2026-04-30
===================

:docs:`v0.7.1` for current. :docs:`v0.5.2` for QCSchema v1.

Enhancements
------------
* :pr:`48` Maint -- Warning printing silenced, so `import qcmanybody` is clean.
Now depends on QCElemental >=0.50.0rc5

Bug Fixes
---------
* :pr:`48` EE -- Electrostatic embedding potential bug with Psi4 fixed embedding
charges might appear in keywords even when no charges on molecule.


.. _`sec:cl070`:

v0.7.0 / 2026-03-27
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ dependencies = [
"numpy",
"pydantic >=2.11; python_version <'3.14'",
"pydantic >=2.12; python_version >='3.14'",
"qcelemental>=0.50.0rc3,<0.70.0",
"qcelemental>=0.50.0rc5,<0.70.0",
]

[project.optional-dependencies]
Expand Down
9 changes: 4 additions & 5 deletions qcmanybody/models/v1/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@

import importlib
import sys
import warnings

_MSG = (
"qcmanybody.models.v1 is active but incompatible with Python 3.14+ "
Expand All @@ -21,10 +20,10 @@
"or migrate to qcmanybody.models.v2."
)

# Warn on import so users see the incompatibility when they explicitly import v1
# Use FutureWarning (visible by default) so users notice the issue during import
if sys.version_info >= (3, 14):
warnings.warn(_MSG, FutureWarning, stacklevel=2)
# For a while, we used a FutureWarning (visible by default) so users notice the issue during import.
# Below works, but it interferes with clean `import qcmanybody`. So we'll rely on the instantiation errors.
# if sys.version_info >= (3, 14):
# warnings.warn(_MSG, FutureWarning, stacklevel=2)
Comment thread
loriab marked this conversation as resolved.


def _make_placeholder(name: str):
Expand Down
9 changes: 4 additions & 5 deletions qcmanybody/v1/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import importlib
import sys
import warnings

_MSG = (
"qcmanybody.v1 is active but incompatible with Python 3.14+ "
Expand All @@ -9,10 +8,10 @@
"or migrate to qcmanybody.v2."
)

# Warn on import so users see the incompatibility when they explicitly import v1
# Use FutureWarning (visible by default) so users notice the issue during import
if sys.version_info >= (3, 14):
warnings.warn(_MSG, FutureWarning, stacklevel=2)
# For a while, we used a FutureWarning (visible by default) so users notice the issue during import.
# Below works, but it interferes with clean `import qcmanybody`. So we'll rely on the instantiation errors.
# if sys.version_info >= (3, 14):
# warnings.warn(_MSG, FutureWarning, stacklevel=2)
Comment thread
loriab marked this conversation as resolved.


def _make_placeholder(name: str):
Expand Down
5 changes: 3 additions & 2 deletions qcmanybody/v1/computer.py
Original file line number Diff line number Diff line change
Expand Up @@ -410,8 +410,9 @@ def from_manybodyinput(cls, input_model: ManyBodyInput, build_tasks: bool = True
component_results = {}

for chem, label, imol in computer_model.qcmb_core.iterate_molecules():
inp = AtomicInput(molecule=imol, **specifications[chem]["specification"])
# inp = AtomicInput(molecule=imol, **specifications[chem]["specification"], extras={"psiapi": True}) # faster for p4
# deepcopy so function_kwargs edits are independent between iterations
inp = AtomicInput(molecule=imol, **copy.deepcopy(specifications[chem]["specification"]))
# inp = AtomicInput(molecule=imol, **copy.deepcopy(specifications[chem]["specification"]), extras={"psiapi": True})

if imol.extras.get("embedding_charges"): # or test on self.embedding_charges ?
if specifications[chem]["program"] == "psi4":
Expand Down
5 changes: 3 additions & 2 deletions qcmanybody/v2/computer.py
Original file line number Diff line number Diff line change
Expand Up @@ -417,8 +417,9 @@ def from_manybodyinput(cls, input_model: ManyBodyInput, build_tasks: bool = True
component_results = {}

for chem, label, imol in computer_model.qcmb_core.iterate_molecules():
inp = AtomicInput(molecule=imol, specification=specifications[chem]["specification"])
# inp = AtomicInput(molecule=imol, specification=specifications[chem]["specification"], extras={"psiapi": True}) # faster for p4
# deepcopy so function_kwargs edits are independent between iterations
inp = AtomicInput(molecule=imol, specification=copy.deepcopy(specifications[chem]["specification"]))
# inp = AtomicInput(molecule=imol, specification=copy.deepcopy(specifications[chem]["specification"]), extras={"psiapi": True}) # faster for p4

if imol.extras.get("embedding_charges"): # or test on self.embedding_charges ?
if specifications[chem]["program"] == "psi4":
Expand Down
Loading