-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
QCSchema coordination, testing, and export #237
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- I don't think
exclude_defaults
was 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_h
will work as expected. I don't remember if there are odd rules around this. - The
.json
link doesn't appear to be working.
setup.py
Outdated
@@ -31,7 +31,7 @@ | |||
package_data={'': [os.path.join('qcelemental', 'data', '*.json')]}, | |||
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Optimization
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 qcschema
pytest --validate qcelemental/
Status