Skip to content

Commit

Permalink
Changes to openff-qcsubmit to use next QCFractal (#195)
Browse files Browse the repository at this point in the history
* Fix imports for qcfractal next, remove unnecessary bits

* Additional fixes

* More name updates

* More renames

* KeywordSet is no longer

* CI conda envs adjusted to use `next` branches

* FractalClient -> PortalClient

* Dataset updates

* Test updates

* Data model fixes in test_results

* Test fixes...

* More dataset cleanup to match qcportal next

* Fix missing import

* Changes from working session with @bennybp

* Update to new qcportal

* Fixes for singlepoint dataset

* More work on portal updates

* Fix where cmiles is for opt datasets

* Lint

* Lint

* More updates for work with next

* update test env with beta QCF packages

* lint and kick CI

* update envs, drop bad test folder temporarily

* update PortalClient to snowflake, get a basic submission test working

* isort test_submission.py

* factor `await_results` out of `basic_submissions_single_spec`

* error if await_results fails and pass optional timeout

* uncomment other single_spec tests

* call await_results with client instead of fulltest_client

* update psi4.yaml to work with psi4 1.8, openff-toolkit-base 0.14.0

most of this is from matt's PR #220 with the additional pins on pint and
openff-units and the addition of postgresql

* pass check_fn to await_results and print more info on error

* pass test_submissions through test_basic_submissions_multiple_spec

* move RecordStatusEnum import to top level and isort

* pass test_submissions through test_basic_submissions_single_pcm_spec

* factor out check_last_spec; pass test_basic_submissions_wavefunction

* pass test_index_not_changed

* don't inherit TorsiondriveDataset.get_specifications

* also update torsiondrive_keywords kwarg
* and TorsionDriveDataset.type name

* pass test_expanding_compute minus object_map check at the end

* get rid of enough snowflakes that all tests terminate

* add docstring to check_metadata

* pass test_optimization_submissions with a minor (?) todo

* constraints as additional_keywords in OptimizationDatasetNewEntry

* pass test_optimization_submissions_with_constraints

* get test_adding_specifications working, but just by disabling half of it

* Exposed `find_existing` kwarg for PortalClient datasets in QCSubmit datasets

* run CI on python 3.9

* skip tests/results folder for now

* standardize on use of fulltest_client instead of snowflake, fix test_adding_compute for OptimizationDatasets

* fixed other cases in test_add_compute

* fixing more tests in test_submissions

* temporarily remove find_existing for testing purposes

* more fixes in test_submissions.py

* test/dataset class updates to get most dataset tests passing

* bring tests/results back online

* re-enable tests/results

* update two filter tests

* More fixes for filters.py and tests

* remaining "easy" fixes for test_filters

* Fixing more tests in test_results

* lining up dataset type names with QCF next

* arbitrarily take the last trajectory step in pcm opt test

* fix keyword checks

* finish fixing test_datasets, note future actions in PR to-dos

* fix mocking for singlepoint and optimization to_records tests

* manually set portal address

* Fix OptimizationResultCollection.to_basic_record_collection, rewire test to use the smallest real opt dataset with hessians to get out of mocking hell

* update test_to_records with specs that have no failures

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* get final molecules instead of initial ones in ORC.to_records

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update CI

* partial test fixes

* fix test_submissions by re-adding dataset.submit's verbose kwarg and fixing spec info lookup

* fix submission checking in tests

* fix molecule vs. record counting in test_results

* fix propagating qc spec keywords(?)

* increase timeout for pcm test

* try smaller mol and longer timeout for pcm test, fix keywords in that and regular opt test

* actually have test_torsiondrive_submissions test torsiondrive submissions

* delete caching.py, imports, and tests

* fix torsiondrive constraint keyword propagation and tests

* stop using cached clients

* small cleanups

* add specification descriptions to qcportal, update tests

* fix smirnoff99frost method

* remove print

* update invalid-cmiles test, wire up propagation of some attributes to entries

* fix inchi lookup in results.py

* try fixing test timeouts and reduce output spam

* walk back overzealous identifier assignment

* testing fixes

* clean up unused code+comments

* black and isort

* re-add pre-commit config

* flake8 cleanups

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix import and formatting

* increase timeout for test_torsiondrive_constraints and format

* remove unused imports

* update examples and skip unavailable hessian results

---------

Co-authored-by: Benjamin Pritchard <[email protected]>
Co-authored-by: Matthew W. Thompson <[email protected]>
Co-authored-by: Jeffrey Wagner <[email protected]>
Co-authored-by: Brent Westbrook <[email protected]>
Co-authored-by: Jeff Wagner <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Josh Horton <[email protected]>
  • Loading branch information
8 people authored Nov 1, 2023
1 parent 68cf309 commit a968d44
Show file tree
Hide file tree
Showing 30 changed files with 1,872 additions and 2,660 deletions.
3 changes: 0 additions & 3 deletions .git-blame-ignore-revs

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
fail-fast: false
matrix:
python-version:
- "3.9"
- 3.9
cfg:
- os: ubuntu-latest
conda-env: basic
Expand Down Expand Up @@ -60,7 +60,7 @@ jobs:

- name: Install Package
run: |
python -m pip install .
python setup.py develop --no-deps
- name: Conda Environment Information
run: |
Expand Down
37 changes: 37 additions & 0 deletions .github/workflows/Lint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: lint

on:
push:
branches:
- "main"
pull_request:
branches:
- "main"

jobs:

build:

runs-on: ubuntu-latest

steps:

- uses: actions/checkout@v2
- uses: actions/[email protected]
with:
python-version: '3.8'
- name: Install the package
run: |
python setup.py develop --no-deps
- name: Install isort / black
run: |
pip install isort black
- name: Run isort
run: |
isort --recursive --check-only openff
- name: Run black
run: |
black openff --check
5 changes: 1 addition & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,4 @@ ENV/
.mypy_cache/

# PyCharm
.idea

# macOS
.DS_Store
.idea
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@ repos:
rev: 6.1.0
hooks:
- id: flake8
files: ^openff
files: ^openff
9 changes: 7 additions & 2 deletions devtools/conda-envs/basic.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,28 @@ dependencies:

- qcengine >=0.25
- qcelemental >=0.25.1
- qcfractal>=0.15.7
- qcfractal>0.49
- qcarchivetesting>0.49
- qcportal>=0.49

- postgresql

- openeye-toolkits

### Core dependencies.

# openmmforcefields brings in the full toolkit; if that is ever re-packaged
# this should be changed to openff-toolkit-base

- openff-toolkit >= 0.14.0
- openff-units >=0.2.1
- pydantic =1
- pyyaml
- qcportal>=0.15.7, <0.50.0a0
- torsiondrive
- basis_set_exchange
- typing-extensions
- h5py>=3.6.0
- psycopg2 # for qcfractal to pip-install without issue

# Optional
- openmmforcefields
Expand Down
12 changes: 8 additions & 4 deletions devtools/conda-envs/psi4.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ name: qcsubmit-test-psi4

channels:
- conda-forge
- conda-forge/label/libint_dev # needed for psi4/libint2
- openeye
- conda-forge/label/libint_dev # for psi4 1.8

dependencies:

Expand All @@ -19,8 +19,9 @@ dependencies:

- qcengine >=0.25
- qcelemental >=0.25.1
- qcfractal >=0.15.7
- qcfractal-core >=0.15.7
- qcfractal>0.49
- qcarchivetesting>0.49
- qcportal>=0.49

- openeye-toolkits

Expand All @@ -33,7 +34,6 @@ dependencies:
- rdkit
- pydantic =1
- pyyaml
- qcportal>=0.15.7, <0.50.0a0
- torsiondrive
- basis_set_exchange
- typing-extensions
Expand All @@ -43,3 +43,7 @@ dependencies:
- openmmforcefields >=0.9.0
- openff-fragmenter-base >=0.2.0
- openmm

- pint=0.21
- openff-units=0.2.1
- postgresql
6 changes: 1 addition & 5 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@

master_doc = "index"

language = "en"
language = 'en'

exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]

Expand Down Expand Up @@ -105,10 +105,6 @@
"http://docs.qcarchive.molssi.org/projects/qcelemental/en/latest/",
None,
),
"openff.docs": (
"https://docs.openforcefield.org/en/latest/",
None,
),
}

# Set up mathjax.
Expand Down
2 changes: 0 additions & 2 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ The recommended way to install QCSubmit is via the `conda` package manger:
conda install -c conda-forge openff-qcsubmit
```

If you do not have Conda installed, see the [OpenFF installation guide](openff.docs:install)

### Optional dependencies

If you have access to the OpenEye toolkits (namely `oechem`, `oequacpac`, `oeomega` and `oedepict`), we recommend installing these also as these can speed up various operations performed by this framework significantly:
Expand Down
Loading

0 comments on commit a968d44

Please sign in to comment.