Repository navigation
Release 0.19.0
Added
- Add public
get_data_type(calctype)andProgramInput.from_spec()helpers for parsers and execution packages.
Changed
-
Every model now writes the installed
qcdata_versionto JSON/YAML/TOML; nested models are stamped too. Loading accepts an existing stamp, and resaving replaces it with the current package version. XYZ structures include a version comment; QCSchema exports exclude qcdata-specific stamps. -
Default
save()andjson_dumps()useexclude_unset=Truefor compact files, retaining explicitly supplied values and computed version stamps. Passexclude_unset=Falseto include unset/default-valued fields. The JSON helper handles individual models and lists consistently, including paths. Models retain shallow freezing; direct container mutation is unsupported and the supported update workflow is dump/edit/validate. -
JSON schemas describe scientific array dimensions correctly. NumPy energy defaults use factories, eliminating non-serializable-default schema warnings.
-
QCSchema conversion preserves source extras and additional producer metadata without claiming QCEngine produced every result. Completed public data/identifier exports and corrected viewer documentation.
-
The temporary
.datacompatibility property and legacy input key are scheduled for removal in the next major release after this one. -
Breaking: result types now follow the input contract on both success and failure.
FileInputrequiresFileData; structured inputs require their corresponding scientific data type even for empty failures. Empty payloads deserialize using the input calculation type, including in nested trajectories. -
Empty optimization final values return
None; empty scan trajectories are supported. Scan structures preserve missing points asNone, and XYZ export rejects points without a final structure. Visualization handles empty failed outputs. -
Breaking: renamed execution fields to
host_cpuandhost_mem_gib(fractional GiB supported), without compatibility aliases. Removed the prototypeStructure.swap_indicesmethod. -
Updated qcinf to >=0.4.1, removing the qcio dependency and obsolete structure-type workaround.
-
ProgramOutput.resultsis now the canonical scientific payload field and serialized key. Scientific models retain theirDatanames..dataand legacy"data"inputs remain temporarily supported withFutureWarning; providing both field names is invalid. -
Breaking: removed the
Results,*Results, andMoleculealiases,qcdata.models.resultsandqcioimport shims,molecule=andids=constructor compatibility, stdout/files forwarding, deprecated output convenience properties, and helpers moved to qcinf. Use canonical APIs directly. -
Breaking: result payloads now inherit from
FileDataand requireProvenancecontaining program identity and optional version.ProgramOutput.provenanceis replaced byexecution: ExecutionInfo, defaulting toExecutionInfo()when runtime details are unknown. Migrate serialized outputs and each trajectory entry by moving producer identity intoresults.provenanceand runtime fields intoexecution. -
Breaking: all inputs now require
program. ReplacedProgramArgs,ProgramArgsSub, andDualProgramInputwith recursiveProgramSpecand structure-boundProgramInput. Migratesubprogram/subprogram_argstosubprograms, giving each child its ownprogramandcalctype; sibling calculation types must be unique.modelis optional and remains a separateModelobject. Existing serialized inputs require the same migration. -
Added immediate-child lookup with
get_subprogram(calctype), recursive visualization details, and an explicit error when converting a model-free input to QCSchema AtomicInput.
What's Changed
Full Changelog: 0.18.1...0.19.0