All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.14.2 - 2024-12-03
Checking jobs status...
print statement in order to have cleaner logs.
0.14.1 - 2024-09-11
- Environment variable control for:
TCPB_HOST
TCPB_PORT
TCPB_FRONTEND_HOST
TCPB_FRONTEND_CLIENT
- Collect
stdout
and files by default if usingTCPBFrontendClient
- Renamed
kwarg
tocompute
raise_error
->raise_exc
to matchqcop
. - Default behavior for
TCPBFrontendClient
is now to collect stdout and files. program_output
appended toexc.program_output
.TCPBFrontendClient
collects stdout and files even if a calculation fails.
- Old devops files in root directory for mypy, flake8, conda, etc.
0.14.0 - 2024-09-10
- GitHub workflows for basic code quality.
release.py
script.
- Changed build system from
flit
topoetry
to standardize with otherMtzGroup
lab projects. - 🚨 Updated minimum Python version from
3.7
->3.9
. - Updated package dependencies.
- Updated devops system. Removed
black
,isort
,flake8
in favor of latest version ofruff
. - Updated documentation dependencies.
- Checks for
bond_order
in the tests as this value is no longer returned by default by the TeraChem server. TCFEKeywords
checks. Just passing arguments to theTCFEClient.compute()
function now.
- Bugfix by Christopher Myers to correct for loop handing CIS states.
- Pegged pydantic version <2.0.
- Moved the
stdout
upon crashing of TeraChem server fromFailedOperation.extras
toFailedOperation.error.extras
. This circumvents MolSSI/QCEngine#397 and is probably a better place for the error data anyways.
- Hacked in a solution for the TeraChem server being off-by-one on the job directory so that we can collect stdout files when the server crashes. It's still impossible to collect stdout if its the first job (and a failed job) run by the server due to the server returning
-1
for thejob_dir
on thestatus
message. Henry will look into fixing the server as per https://github.com/mtzgroup/terachem/issues/138.
- Bump support from python 3.6 -> 3.7 (3.6 has end-of-life'd)
- Peg
protobuf
to3.20.1
since newer versions do not support our outdated_pb2.py
protobuf files.
- Return
FailedOperation
instead of raising exceptions in.compute()
methods. - Use
TCFEKeywords
enums throughout code. - Collect
tc.out
, if possible, when computation fails.
- Moved
job_output_to_atomic_result
to be method on client objects so thatAtomicResult.provenance
can be dynamically set correctly depending on which client is used.
- Documentation and
mkdocs
website on GitHub pages. Docs available here
- Renamed
AtomicInput.extras['tcfe:config']
->AtomicInput.extras['tcfe:keywords']
-
Configuration parameters for controlling
TCFrontEndClient
behavior:native_files
: list[str] - List of natives files to collect. If none passed, all files will be collected.
-
Tests for
TCFrontEndClient
file put/get behaviors.
- Refactored
TCFrontEndClient
- Construction of molden file from protocol buffer outputs. Molden files can now be requested directly from the Frontend client.
-
TCFrontEndClient
to enable access to the files written by TeraChem and upload input files for TeraChem, in particularc0
files as initial wavefunction guesses.- Configuration parameters for controlling
TCFrontEndClient
behavior are found inAtomicInput.extras['tcfe:config']
and include:c0
|ca0
andcb0
:bytes
- Binary files to use as an initial guess wavefunctionscratch_messy
:bool
- IfTrue
client will not delete files on server after a computationuploads_messy
:bool
- IfTrue
client will not delete uploaded c0 file(s) after a computation
- Client also supports AtomicResultProtocols
stdout
andnative_files
.
- Configuration parameters for controlling
qcelemental
required version bumped from>=0.17.0
to>=0.24.0
to supportnative_files
field for returning files. See qcelemental note. Note I am breaking the convention and returning binary data as well since I have more control over file access via theTCFrontEndClient
than anticipated in theqcelemental
/qcengine
specification. Additionally I need the binaryc0
file to use as initial guesses for TeraChem computations.
0.8.0 - 2021-05-26
- Many IMD values to the
result.extra['qcvars']
dict result.wavefunction
now containsWavefunctionProperties
result.extras['qcvars']['bond_order']
->result.extras['qcvars']['meyer_bond_order']
- Many values in
result.extras['qcvars']
moved toresult.extras['job_extras']
if they didn't pertain to quantum chemistry values. result.extras['qcvars']['orb{a,b}_{energies,occupations}']
moved toresult.wavefunction
. Note these will only be returned ifAtomicInput.protocols.wavefunction = "all"
.
- Removed unused documentation setup. Can add documentation with
mkdocs
later if needed.
0.7.2 - 2021-03-10
- Learned that AtomicResult is supposed to be a full superset of AtomicInput used to generate the result. Changed
utils.job_output_to_atomic_result()
to reflect this reality.
0.7.1 - 2021-03-10
imd_orbital_type
specific keyword extraction to support creation of molden files.
0.7.0 - 2021-02-26
TCCloud.compute(atomic_input: AtomicInput) -> AtomicResult
top level method to create MolSSI QCSchema compliant interface.pyproject.toml
- more examples in
/examples
that leverage the new QCSchema interface utils.py
that contains basic utilities for transforming inputs/outputs toQCSchema
format.
- Using
flit
instead ofsetuptools
for packaging. - Compatible with only python 3.6+ (adding type annotations)
setup.py
- Unused and broken test files including non functional mock server.
r0.6.0 - 2021-02-25
- Added Henry's molden file constructor function.
- All of Stefan's original code.