| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-07-14 | 20.2 kB | |
| v1.8.0 source code.tar.gz | 2026-07-14 | 45.5 MB | |
| v1.8.0 source code.zip | 2026-07-14 | 45.9 MB | |
| openfermion-1.8.0-py3-none-any.whl | 2026-07-14 | 44.7 MB | |
| Totals: 4 Items | 136.1 MB | 1 | |
OpenFermion v1.8.0
Summary of changes
This release contains the following API enhancements:
- Added
trotter_steps_required_propagatorfor computing the number of Trotter steps required for propagation (rather than ground state energy estimation). MolecularDatanow supports arbitrary multiplicities (rather than only up to duodectet).SymbolicOperator.isclose(…)now accepts relative and absolute tolerance values (c.f. PR https://github.com/quantumlib/OpenFermion/pull/1114).
In addition, this release adds support for the latest release of Cirq (1.7.0) and many other packages, updates Python type annotations throughout the code (thanks to a big effort by @rosspeili), and fixes many small bugs in code and documentation. For developers, there is an updated CONTRIBUTING.md (github.com) file, several new scripts in the check/ subdirectory, support for parallel execution of Pytest for faster testing, an optional pre-commit hook configuration, and much more. (Refer to the detailed changed list below for more information.)
List of contributors
A huge thank-you to all the contributors for their work towards this release! In alphabetical order by GitHub user names, they are:
@aoowweenn, @arettig, @BapisteB, @BeauDevCode, @blazingphoenix7, @dstrain115, @jajapuramshivasai, @JdelArco98, @kottmanj, @matti-sarjala, @pavoljuhas, @rosspeili, @S-Erik, and @SamKChang.
Detailed change list
- (PR [#805]) Fix convention of PolynomialTensor basis change (@aoowweenn)
- (PR [#1085]) Fix [#1076]: Update
orbital_energiestodiagonalizing_bogoliubov_transform(@SamKChang) - (PR [#1086]) Fix [#929]: Raise error for non-physical terms (@SamKChang)
- (PR [#1089]) Fix [#928]: Define rows of matrix explicitly (@SamKChang)
- (PR [#1094]) Update versions of Python and GitHub runners (@mhucka)
- (PR [#1096]) Fix typos in two files (@dstrain115)
- (PR [#1109]) Remove CodeQL scanner & move others to new weekly schedule (@mhucka)
- (PR [#1111]) Fix [#925]: inconsistent return in df_integrals.py::double_factorize (@mhucka)
- (PR [#1114]) Fix [#764]: wrong SymbolicOperator.isclose() result (@mhucka)
- (PR [#1121]) Fix [#1118]: avoid using "-P" with grep (@mhucka)
- (PR [#1122]) Make CI run on any changes to tools, check scripts, and all workflow files (@mhucka)
- (PR [#1136]) Tell actionlint that image ubuntu-24.04-arm is valid (@mhucka)
- (PR [#1140]) Fix [#1120]: change unsafe regex in symbolic_operator.py (@mhucka)
- (PR [#1142]) Update hadolint configuration (@mhucka)
- (PR [#1143]) Fix [#1137] and [#908]: replace README.rst with Markdown version & update content (@mhucka)
- (PR [#1144]) Add check/shellcheck (@mhucka)
- (PR [#1145]) Add check/pylint-changed-files (@mhucka)
- (PR [#1146]) Add check/all (@mhucka)
- (PR [#1147]) check/shellcheck - exit if it cannot reliably change to the repo_dir (@pavoljuhas)
- (PR [#1150]) Avoid early exit in check/shellcheck due to spurious read failure (@pavoljuhas)
- (PR [#1151]) Change references to "master" to be to "main" (@mhucka)
- (PR [#1166]) docs: update return type of get_molecular_hamiltonian (@BapisteB)
- (PR [#1171]) Add numbers.Number to COEFFICIENT_TYPES in SymbolicOperator (@kottmanj)
- (PR [#1175]) Update versions of GitHub Actions used in workflows (@mhucka)
- (PR [#1194]) Fixed expectation_computational_basis_state (@S-Erik) in
- (PR [#1195]) Remove OSV scanner because it turns out to be redundant (@mhucka)
- (PR [#1196]) Update scorecard workflow (@mhucka)
- (PR [#1197]) Remove no-longer-necessary weekly.yaml workflow (@mhucka)
- (PR [#1202]) Update GitHub Actions versions to latest (@mhucka)
- (PR [#1204]) Re-pip-compile all requirements files (@mhucka)
- (PR [#1205]) Remove
asyncio_default_fixture_loop_scopesetting (@mhucka) - (PR [#1206]) Merge file change tests for Python source and requirements files (@mhucka)
- (PR [#1207]) Consider .ini files & config files in Python file changes (@mhucka)
- (PR [#1208]) Adjust tolerance in compute_lambda_thc_test.py test (@mhucka)
- (PR [#1215]) Update all GitHub Actions versions (@mhucka)
- (PR [#1216]) Run
check/format-incremental --all --apply(no code changes) (@mhucka) - (PR [#1217]) Fix README.rst → README.md (@mhucka)
- (PR [#1219]) Fix [#481]: make tests of Pubchem more robust (@mhucka)
- (PR [#1220]) Use sys.monitoring for small speedup of tests in Python 3.12+ (@mhucka)
- (PR [#1222]) Add settings file for Gemini Code Assist (@mhucka)
- (PR [#1223]) Remove OSV scanner config file (@mhucka)
- (PR [#1224]) Add a
.geminiignorefile (@mhucka) - (PR [#1225]) Add hash for [#1216] to
.git-blame-ignore-revsand add info toCONTRIBUTING.md(@mhucka) - (PR [#1230]) Try to avoid equation constructs that look like Jinja templates (@mhucka)
- (PR [#1231]) More documentation formatting fixes (@mhucka)
- (PR [#1238]) Skip running slow tests in CI (@mhucka)
- (PR [#1241]) Improve reliability and tests for map_particle_hole_dm_to_one_pdm (@mhucka)
- (PR [#1242]) Remove unused imports in hamiltonians/richardson_gaudin.py (@mhucka)
- (PR [#1251]) Add test coverage for missing general_calculations in MolecularData.load (@mhucka)
- (PR [#1252]) Expand and improve
CONTRIBUTING.md(@mhucka) - (PR [#1253]) Fix Scorecard workflow problem when dealing with PR forks (@mhucka)
- (PR [#1254]) Update Python requirements (@mhucka)
- (PR [#1258]) Add tests for additional h5py.File exceptions (@mhucka)
- (PR [#1259]) Fix typos in FQE Hamiltonian time evolution tutorial notebook (@jajapuramshivasai)
- (PR [#1260]) Remove Python 2 shims (@mhucka)
- (PR [#1261]) Move GitHub access token from query parameter into header (@mhucka)
- (PR [#1262]) Avoid inefficient list construction in
qubit_tapering_from_stabilizer.py(@mhucka) - (PR [#1263]) Remove commented-out import in
binary_code.py(@mhucka) - (PR [#1264]) Add tests for
ValueErrorindouble_commutator(@mhucka) - (PR [#1269]) Don't run Scorecard on fork PRs (@mhucka)
- (PR [#1271]) Simplify and streamline
ci.yaml(@mhucka) - (PR [#1275]) Simplify the filters used to detect changed files (@mhucka)
- (PR [#1276]) Robustify the Pubchem live api pytest test (@mhucka)
- (PR [#1278]) Convert
pubchem_test.pyto use plain pytest instead of unittest (@mhucka) - (PR [#1279]) Move pytest options to pyproject.toml (@mhucka)
- (PR [#1280]) Move mypy options to pyproject.toml (@mhucka)
- (PR [#1281]) Move .coveragerc contents to pyproject.toml (@mhucka)
- (PR [#1283]) Remove left-over Python 2-isms (@mhucka)
- (PR [#1284]) Increase the delay between PubChem retries (@mhucka)
- (PR [#1285]) Increase the delay between PubChem retries again (@mhucka)
- (PR [#1286]) Increase number of retries for Pubchem test even more (@mhucka)
- (PR [#1287]) Move dev_tools/conf/.pylintrc to the top level (@mhucka)
- (PR [#1288]) Skip Pubchem live API test in CI (@mhucka)
- (PR [#1289]) Add optional
.pre-commit-config.yamlfor the OpenFermion project (@mhucka) - (PR [#1291]) Make it possible to run Pytest in parallel (@mhucka)
- (PR [#1292]) Mark a few more tests as slow (@mhucka)
- (PR [#1293]) Fix 2 problems in
_multitensor.py(@mhucka) - (PR [#1294]) Fix typo in property name in pyproject.toml (@mhucka)
- (PR [#1295]) Remove reference to discontinued icon in docs (@mhucka)
- (PR [#1296]) Fix TypeError on non-spin-symmetric hamiltonians in low_rank trotter decomposition (@rosspeili)
- (PR [#1298]) Add missing Python type annotations to code in
dev_tools/(@mhucka) - (PR [#1299]) Feature/issue 1274 notebook format check (@rosspeili)
- (PR [#1300]) Add missing type declarations for top-level files in
src/openfermion(@mhucka) - (PR [#1301]) Explain in
CONTRIBUTING.mdabout using--applywith format-incremental (@mhucka) - (PR [#1306]) document interactionoperator hermitian assumptions (@matti-sarjala)
- (PR [#1309]) Update some requirements to their latest versions (@mhucka)
- (PR [#1320]) Added shellcheck dependency (@arettig)
- (PR [#1322]) docs: format notebooks with tensorflow-docs nbfmt (@rosspeili)
- (PR [#1323]) Use pip installable hadolint for pre-commit hook (@arettig)
- (PR [#1325]) Fix RDM basis set rotation (@arettig)
- (PR [#1331]) Add unit tests for utils/indexing.py (@mhucka)
- (PR [#1334]) Revise
.editorconfig(@mhucka) - (PR [#1335]) Remove downloads badge from top-level
README.md(@mhucka) - (PR [#1338]) In
ci.yaml, tellbrewnot to auto-update itself (@mhucka) - (PR [#1339]) Rerun flaky test in vpe_circuits_test.py (@arettig)
- (PR [#1347]) Use SPDX license metadata (@BeauDevCode)
- (PR [#1348]) Replace noninclusive dummy and sanity language (#1290) (@rosspeili)
- (PR [#1349]) Fix mypy annotations in fermion_partitioning (#1282) (@rosspeili)
- (PR [#1352]) Replace
pip-compile-based dependency management withuv-based approach (@mhucka) - (PR [#1353]) Simplify & update CI workflow (@mhucka)
- (PR [#1354]) Fix planewave based jellium model (@arettig)
- (PR [#1355]) Add
.gitattributesfile (@mhucka) - (PR [#1356]) Fix integer type in
binary_code_transform(@JdelArco98) - (PR [#1357]) Fix mypy errors in batch 2 files (#1282) (@rosspeili)
- (PR [#1358]) Remove use of NumPy for scalar math in jellium.py (@arettig)
- (PR [#1359]) Add missing term to trotter error loose bounds (@arettig)
- (PR [#1360]) Fix bogoliubov_transform for spin-preserving Gaussian transformations (@blazingphoenix7)
- (PR [#1361]) Accept NumPy scalar coefficients across operator and representation types (@blazingphoenix7)
- (PR [#1362]) Fix mypy errors in batch 2 part 2 (#1282) (@rosspeili)
- (PR [#1365]) Fix mypy errors in batch 2 part 3 (#1282) (@rosspeili)
- (PR [#1366]) Fix inconsistencies in double factorization cost estimation (@arettig)
- (PR [#1368]) Fix mypy errors in batch 3 part 1 (#1282) (@rosspeili)
- (PR [#1370]) Add support for arbitrarily large spin states (@arettig)
- (PR [#1371]) Add nsteps for Trotter expansion based on propagator error (@arettig)
- (PR [#1378]) Fix up a few minor things in
setup.py(@mhucka) - (PR [#1379]) Fix modification of rotation matrix in Givens rotation (@arettig)
- (PR [#1380]) Fix factor of 2 in Rz operator in trotter_export_to_qgates_test.py (@arettig)
- (PR [#1382]) Fix broken string in setup.py (@mhucka)
- (PR [#1384]) Make minor updates and tweaks to pre-commit setup (@mhucka)
- (PR [#1385]) Fix [#1383]: replace some noninclusive terms in various files (@mhucka)
- (PR [#1386]) Fix/issue 1282 mypy batch3 part2 (@rosspeili)
- (PR [#1387]) Fix remaining mypy errors for issue [#1282] (PR1) (@rosspeili)
- (PR [#1392]) Fix final mypy errors for issue [#1282] and enable strict checking (@rosspeili)
- (PR [#1394]) Update docs/_book.yaml to fix broken doc builds (@mhucka)
- (PR [#1395]) Fix additional API documentation bugs (@mhucka)
- (PR [#1396]) Fix type casting error in thc_jax.py (@mhucka)
- (PR [#1397]) Support Cirq 1.7 change in exponents that affects rendering of circuit diagrams (@mhucka)
- (PR [#1400]) Don't add package name to
site_pathvalue indev_tools/docs/build_api_docs.py(@mhucka) - (PR [#1401]) Mark
test_kpoint_isdf_symmetries()as flaky (@mhucka) - (PR [#1403]) Add missing
rtogvec_map_logic.pymodule docstring (@mhucka) - (PR [#1404]) Make multiprocessing calls aware of parallelism used during testing (@mhucka)
- (PR [#1406]) Use
retry_once_with_later_random_values()in isdf_test.py (@mhucka)
Full Changelog: https://github.com/quantumlib/OpenFermion/compare/v1.7.1...v1.8.0
Problems, help, and discussions
If you encounter problems, please open an issue on GitHub and let us know.
If you would like to get help with using OpenFermion or discuss topics in quantum algorithms to simulate electronic structures, please go over to the Discussion section and start a new discussion.