QCSchema coordination, testing, and export#237
Conversation
dgasmith
left a comment
There was a problem hiding this comment.
- I don't think
exclude_defaultswas an option at the time. - Thats fine, but I did like in the past where it forced you to add these.
- Sounds good, but will require a lot of checks inside QCEngine.
- Very much needed.
- The mp2 issues isn't linking at the moment, I cannot see what you are referring to.
- The aliases are fine, though I'm not sure
E_hwill work as expected. I don't remember if there are odd rules around this. - The
.jsonlink doesn't appear to be working.
| setup_requires=[] + pytest_runner, | ||
| python_requires='>=3.6', | ||
| install_requires=['numpy >= 1.12.0', 'pint >= 0.10.0', 'pydantic >= 1.0.0'], | ||
| install_requires=["numpy >= 1.12.0", "pint >= 0.10.0", "pydantic >= 1.5.0"], |
There was a problem hiding this comment.
Pydantic 1.6.0 has a bad regression with nested models, recommend skipping. Fixed in 1.6.1.
| AtomicResultProperties, | ||
| BasisSet, | ||
| Molecule, | ||
| Provenance, |
There was a problem hiding this comment.
Optimization was never added over at qcsk, so I was aiming for a 1:1 changeset. Agree that it'd be good to get OptimizationInput/Result formalized over there soon.
✔️
I don't think it was, though. It's been
yes, indeed
✔️
Maybe this works better https://github.com/MolSSI/QCElemental/blob/master/qcelemental/models/results.py#L77-L79,
Ok. I haven't explored
|
dgasmith
left a comment
There was a problem hiding this comment.
Thanks for the links, it all looks great!
|
It turns out a0/a_0/Eh/E_h are already in pint c. v0.10 hgrecco/pint#811 |
python -c "exec(\"import pathlib, qcelemental\nfor md in qcelemental.models.qcschema_models():\n\tmfile = (pathlib.Path('qcschema') / md.__name__).with_suffix('.schema')\n\twith open(mfile, 'w') as fp:\n\t\tfp.write(md.schema_json(indent=None))\")"
python -c "exec(\"import json, pathlib, pydantic, qcelemental\nwith open((pathlib.Path('qcschema') / 'QCSchema').with_suffix('.schema'), 'w') as fp:\n\tjson.dump(pydantic.schema.schema(qcelemental.models.qcschema_models(), title='QCSchema'), fp, indent=4)\")"
…ma pytest --validate
Description
This reconciles some details of models that had gotten out of sync with qcsk. It makes the schema generatable from the models. It dumps some examples of schema from the existing test cases. It patches up some mypy errors. Finally, it starts setting up some coordination with qcsk so that PRs to qcel (on upstream) that propose to change the schema get notified over in qcsk, addressing MolSSI/QCSchema#68 . This coordinates with MolSSI/QCSchema#77
Changelog description
make qcschemapytest --validate qcelemental/Status