SEAMM Util
Utility classes and functions that support other SEAMM tools
Free software: BSD license
Documentation: https://seamm-util.readthedocs.io.
Features
TODO
Credits
This package was created with Cookiecutter and the molssi-seamm/cookiecutter-seamm-plugin project template.
Developed by the Molecular Sciences Software Institute (MolSSI), which receives funding from the National Science Foundation under awards OAC-1547580 and CHE-2136142
History
- 2026.9.27 – The default root follows the installation
The default for --root was always ~/SEAMM, so a second installation such as ~/SEAMM_DEV read ~/SEAMM’s configuration and data unless every command was given --root. The default is now the SEAMM_ROOT environment variable if set, otherwise the installation the running Python belongs to (a seamm-manager environment <root>/venv whose root holds Jobs or .ini files), and otherwise ~/SEAMM as before. Existing single installations behave exactly as they did.
root in the [SEAMM] section of ~/.seamm.d/seamm.ini still works but logs a deprecation warning, since that file is shared by every installation of a user; SEAMM_ROOT takes precedence over it.
New functions seamm_util.default_root() and seamm_util.installation_root().
- 2026.9.18 – Bugfix: pip metadata lacked requests
pip install seamm-util did not install requests, which the Zenodo client imports, so seamm-util failed to import outside a conda-forge environment (whose recipe already listed it). It is now an install requirement.
- 2026.7.26 – Support anonymous access to public Zenodo records
Added Zenodo.get_latest_public_record(), which resolves a stable “concept” record id to whichever version of a public record is currently newest, with no authentication – for “always fetch the current data” without hardcoding a version number.
Fixed Record.download_file(), .get_file(), and .files(), which only recognized the authenticated deposit/edit API’s file-entry shape (filename/links.download). The public records API uses key/links.self instead; these methods now accept either, so a Record from get_latest_public_record() works correctly.
- 2026.7.20 – Internal: exclude _version.py from black
Excluded the generated _version.py from the black lint/format targets in the Makefile, matching the other SEAMM packages, so make lint no longer flags it. No effect on the installed package.
- 2026.7.15 – Added a database-timeout option
Added the “database-timeout” option (default 20 seconds) that controls how long SEAMM waits for the job database when it is locked by another job before giving up. This helps when many jobs start at the same time, for example a batch of jobs on a cluster.
2025.12.9 – Added transformation for density using g/mol/Å^3
2025.9.10 – Added velocity units for speed of sound
- 2025.8.27 – Added more pressure units
Added MPa, GPa, and TPa to the default pressure units.
Added units for 1/pressure and 1/temperature to support the thermomechanical step.
- 2025.8.18 – Added ability to output graphs to several formats
Added graph output to HTML, PNG, JPEG, webp, SVG, and PDF
- 2024.8.22 – Bugfix: charts with multiple exes, plus units for force constants
Add units for force constants (kJ/mol/Å^2,…)
Fixed an issue naming axes in plots with multiple axes
- 2024.8.1 – Added default units for viscosity and fixed a bug in handling dimensions
Added more default units: dynamic viscosity (cP, etc) and kinematic viscosity (cSt, etc)
Fixed a bug handling unit dimensions since the order changed in Pint. Now they are put in a standard alphabetical order.
- 2024.7.25 – Added configuration file handler
Added a configuration file handler that preserves comments in the file so that documentation is not stripped.
- 2024.7.15 – Added temperature-energy conversions
Added conversions from temeprature units, like K, to energy, like kJ/mol and vice versa.
Used more of the Pint contexts, which should allow wavenumbers to frequency, etc.
- 2024.6.27 – Added support for URI’s
Now recognize URI’s in the form local:path/to/file
An optional URI handler can be passed in to resolve such URI’s.
- 2024.6.5 – Bugfix: Handling of duplicates in lists
Roundoff in floating point numbers caused some duplicates to be missed. The code now checks for duplicates in a more robust way.
- 2024.4.30 – Added utility for handling list definitions
Add list_definition.py with parse_list()
Updated makefile for doctests.
- 2024.4.26 – Removed debug printing
Some debug printing was accidentally left in the code.
- 2024.4.22 – Moving user preferences to ~/.seamm.d
To better support Docker, moving ~/.seammrc to ~/.seamm.d/seamrc
Moved seamm.ini from ~/SEAMM to ~/seamm.d since it only contains personal preferences.
- 2023.11.12 – Internal update
Versioneer needed to be updated to account for changes in configparser.
- 2023.11.11 – Updated for changes in Zenodo
Zenodo updated and made small changes to their API, which required changes in SEAMM.
Consolidated all private information about the user and their keys for Zenodo in ~/.seammrc
- 2023.6.4 – Added more unit conversions to support thermochemistry
added E_h/K –> kJ/mol/K
- 2023.4.6 – Added more unit conversions to support Buckingham potentials
added e.g. eV*Å^6 to kcal/mol*Å^6 to support Buckingham pontetials
- 2023.2.28 – Added a compact JSON encoder
To make the schema-type JSON more human-readable.
- 2022.11.3 – More conversions involving substance (mol) to number
Added energy/mol/Å^2 –> energy/Å^2 for force constants
Added energy/mol/Å^3 –> energy/Å^3 for stress/pressure/elastic constants
- 0.1.0 (2017-12-07)
First release on PyPI.
Release files for seamm-util 2026.9.27
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| seamm_util-2026.9.27.tar.gz | 91.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| seamm_util-2026.9.27-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 151.2 kB
Release files / seamm_util-2026.9.27.tar.gz
| Download URL | seamm_util-2026.9.27.tar.gz |
|---|---|
| Size | 91.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
46039af203cc442744c1a3f66e069a9544def84a5eb9b7806444a61b88093d08
|
|
BLAKE2b-256 checksum How to use checksums |
77b7a9f34803c8af5e55b68dc0dbc8a8ce996ba545fb8c4974c87051b27b830d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / seamm_util-2026.9.27-py2.py3-none-any.whl
| Download URL | seamm_util-2026.9.27-py2.py3-none-any.whl |
|---|---|
| Size | 59.4 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
feb4203070df173aa6d01c97ffba9d267c74190d32bbfe38b160ee0765947fe8
|
|
BLAKE2b-256 checksum How to use checksums |
dc4d0b60aa6d899d4efaf1b69fd8bb3a3abd98ecacfe6647c7e2f718aba764d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|