Skip to content
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

Foqus cloud #1241

Closed
wants to merge 72 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
608b5e4
Replace time.process_time() with time.time()
boverhof Jan 19, 2023
9af78d4
Merge remote-tracking branch 'upstream/master' into foqus_cloud
boverhof Feb 14, 2023
3e0082c
Merge remote-tracking branch 'upstream/master' into foqus_cloud
boverhof Mar 7, 2023
4096db3
Exception handling
boverhof Mar 7, 2023
7c02310
Backend updates for user plugins
boverhof Mar 10, 2023
9382917
If setttings bad throw runtime error
boverhof Mar 10, 2023
9d76185
Merge pull request #1 from boverhof/boverhof.user_plugins_backend.202…
boverhof Mar 10, 2023
176aa5d
code improvements
boverhof Mar 11, 2023
14c33e7
Ran Black
boverhof Mar 13, 2023
e38126f
Update macOS GHA runner image (#1144)
lbianchi-lbl Jun 6, 2023
786f1e4
Merge remote-tracking branch 'upstream/master' into foqus_cloud
boverhof Jun 7, 2023
4d40e48
adding attribute check to avoid throwing exception (#1147)
kbuma Jun 13, 2023
d70d4f5
added call out to look at the Log Viewer in Help for more details on …
kbuma Jun 20, 2023
ceb1e46
Resolve test failures due to NumPy 1.25 (#1152)
lbianchi-lbl Jun 27, 2023
74b3f6e
Changes to allow install for arm64 darwin. (#1148)
kbuma Jun 27, 2023
c9ff053
3.19.dev0
lbianchi-lbl Jun 30, 2023
cb85b8f
Add constraint for joblib due to mlrose_hiive importing removed module
lbianchi-lbl Jun 30, 2023
807ac6b
Simpler implementation of ordering algorithm (#1157)
sotorrio1 Aug 22, 2023
0d1e950
Updates to SDoE Documentation Examples Pages (#1160)
mirandamartin Sep 5, 2023
baa13c8
handle possibility best indices and best_optval are None to avoid en …
sotorrio1 Sep 12, 2023
237022b
Gradient generation tool to support GENN models in FOQUS (#1164)
bpaul4 Sep 29, 2023
10df746
Support for Surrogate Modeling Toolbox Machine Learning (GENN) Models…
bpaul4 Sep 29, 2023
97e41f7
3.20.dev0
lbianchi-lbl Sep 29, 2023
b99b583
Add new mandatory sections to ReadTheDocs configuration (#1177)
lbianchi-lbl Nov 1, 2023
5334847
Add NLOpt installation instructions back (#1175)
boverhof Nov 7, 2023
250ee8c
Add Spell Checker (#1168)
bpaul4 Nov 22, 2023
f69912d
Pin pywin32 version to 306 to address #1172 and remove support for Py…
lbianchi-lbl Nov 22, 2023
cb938bf
SDoE: embedding SDoE plots into QDialog windows (#1171)
sotorrio1 Nov 28, 2023
c11cc51
MVP Surrogate Plugin ML/AI (#1163)
franflame Dec 13, 2023
f0cf1c3
Surrogate Plugin ML/AI Documentation (#1181)
bpaul4 Dec 13, 2023
6694f80
Enable CI static check to enforce consistent import order (#1170)
lbianchi-lbl Dec 13, 2023
f2a4cb6
Ensure paths mentioned in Sphinx docs are valid (#1183)
lbianchi-lbl Dec 14, 2023
b592906
3.21.dev0
lbianchi-lbl Dec 15, 2023
9faf1d8
OUU: Fixing documentation typo (#1187)
sotorrio1 Jan 17, 2024
820bbdb
Enable support for Python 3.8 thru 3.12 (#1165)
franflame Mar 19, 2024
0be08fc
update FOQUS documentation to include info on how to set paths for Si…
kbuma Mar 19, 2024
f36093a
Adding type annotations to SDoE (#1184)
sotorrio1 Mar 20, 2024
9aa7d35
Add Turbine Configuration section to Debugging documentation (#1203)
bpaul4 Mar 20, 2024
fbda808
parallelize USF and NUSF algorithms using Dask (#1198)
kbuma Mar 21, 2024
8c98cfa
SDoE: implementing input type dependent ordering capability (#1194)
sotorrio1 Mar 21, 2024
295119e
Bump black from 22.3.0 to 24.3.0 (#1206)
dependabot[bot] Mar 22, 2024
5573052
Update copyright year to 2024 (#1207)
lbianchi-lbl Mar 22, 2024
7b3dbab
3.22.dev0
lbianchi-lbl Mar 22, 2024
1161d04
A few more copyright year updates (#1208)
ksbeattie Mar 22, 2024
47053af
Fixes for bugs related to SDOE in 3.21-rc (#1210)
kbuma Mar 27, 2024
ec385e8
Convert logging exception to warning on Dask get_client() failure (#1…
lbianchi-lbl Mar 29, 2024
8da0631
Fix typos from recent update to v1.20.7 (#1216)
bpaul4 Apr 10, 2024
0b7f3c8
Resolve SMT Method Changes / Support for JENN Models (#1217)
bpaul4 Apr 30, 2024
7a04a6b
Fixing pandas deprecation (#1214)
sotorrio1 May 7, 2024
c953148
Merge remote-tracking branch 'upstream/master' into foqus_cloud
boverhof May 30, 2024
70fdb66
Log to CloudWatch using watchtower /user/{username}/ec2/{instance_id}
boverhof May 30, 2024
830a6c2
Log out to CloudWatch using watchtower
boverhof May 30, 2024
8bb96d1
Add Watchtower to installs
boverhof May 30, 2024
b158460
logging file for cloudwatch aws
boverhof May 30, 2024
f135a19
Merge branch 'foqus_cloud' of https://github.com/boverhof/FOQUS into …
boverhof Jun 1, 2024
38c546b
Add check to ensure PSUADE is found at FOQUS startup (#1226)
lbianchi-lbl Jun 18, 2024
970d82d
Use core for simsinter and turbineLite home paths
boverhof Jun 26, 2024
270396a
add import
boverhof Jun 26, 2024
843d202
add core
boverhof Jun 26, 2024
1b6495a
change isfile to isdir for install path
boverhof Jun 27, 2024
7ec236d
less logging messages
boverhof Jun 27, 2024
ef445bf
update logging
boverhof Jun 27, 2024
c59a84c
clean code
boverhof Jun 27, 2024
06fe4b7
Update ML AI Plugin To Support Keras 3 (#1223)
bpaul4 Jul 2, 2024
70f62e2
Update Codecov CI configuration (#1229)
lbianchi-lbl Jul 2, 2024
a80a7f1
Adding more tests to SDoE (#1225)
sotorrio1 Jul 2, 2024
c33fd58
Update Docs For ALAMO EXE Note (#1230)
bpaul4 Jul 3, 2024
1dd5a24
Improving SDoE GUI Testing Coverage (#1220)
franflame Jul 3, 2024
fb0777c
3.23.dev0
boverhof Jul 3, 2024
691185f
fix some typos (#1235)
bpaul4 Jul 16, 2024
1e6f013
Merge remote-tracking branch 'upstream/master' into foqus_cloud
boverhof Sep 24, 2024
1142414
format with black
boverhof Sep 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .addheader.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Usage:
# addheader -c addheader.yml
# addheader -c .addheader.yml -P ""
root: .
text: header_text.txt
patterns:
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/pylint/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,6 @@ runs:
shell: bash
run: |
echo '::group::Output of pylint'
pylint --rcfile=.pylint/pylintrc --disable=W,C,R,I foqus_lib/
pylint --rcfile=.pylint/pylintrc --disable=all --enable=E --enable=wrong-import-order foqus_lib/
echo '::endgroup::'

8 changes: 4 additions & 4 deletions .github/actions/setup-foqus/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ runs:
# IMPORTANT this requires the Conda env setup to be run before this action
- name: Update pip and other packaging tools using Conda
# -l: login shell, needed when using Conda run:
shell: bash -l {0}
shell: bash -l -eo pipefail {0}
run: |
echo '::group::Output of "conda install" command'
conda install --yes --quiet -c conda-forge pip pywin32
conda install --yes --quiet -c conda-forge pip pywin32=306
conda list
echo '::endgroup::'
- name: Install FOQUS and dependencies using pip
shell: bash -l {0}
shell: bash -l -eo pipefail {0}
run: |
echo '::group::Output of "pip install" command'
${{ inputs.pip-install-command }} ${{ inputs.pip-install-target}}
Expand All @@ -33,7 +33,7 @@ runs:
pip show ccsi-foqus PyQt5
echo '::endgroup::'
- name: Install psuade-lite using Conda
shell: bash -l {0}
shell: bash -l -eo pipefail {0}
run: |
echo '::group::Output of "conda install psuade-lite"'
conda install --yes --quiet -c CCSI-Toolset -c conda-forge psuade-lite=1.9
Expand Down
109 changes: 77 additions & 32 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,22 @@ on:
defaults:
run:
# the -l flag is needed for the Conda environment to be activated properly
shell: bash -l {0}
shell: bash -l -eo pipefail {0}

env:
FOQUS_CONDA_ENV_NAME_DEV: ccsi-foqus-dev
PYTEST_BASETEMP: .pytest
DEFAULT_PYTHON_VERSION: '3.10'

jobs:
code-formatting:
name: Code formatting (Black)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.8'
python-version: ${{ env.DEFAULT_PYTHON_VERSION }}
- name: Install Black
# unlike the other jobs, we don't need to install FOQUS and/or all the dev dependencies,
# but we still want to specify the Black version to use in requirements-dev.txt for local development
Expand All @@ -47,74 +48,117 @@ jobs:
- name: Run Black to verify that the committed code is formatted
run: |
black --check .
spell-check:
name: Check Spelling
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Run Spell Checker
uses: crate-ci/typos@master
with:
config: .typos.toml
pytest:
name: pytest (py${{ matrix.python-version }}/${{ matrix.os }})
needs: [code-formatting]
runs-on: ${{ matrix.os-version }}
strategy:
fail-fast: false
matrix:
python-version:
- '3.7'
- '3.8'
- '3.9'
# - '3.10'
- '3.10'
- '3.11'
- '3.12'
os:
- linux
- win64
- macos-x86_64
- macos
include:
- os: macos-x86_64
os-version: macos-13
- os: macos
os-version: macos-10.15
os-version: macos-14
- os: linux
os-version: ubuntu-20.04
- os: win64
os-version: windows-2019
- python-version: "3.8" # avoid uploading coverage for full matrix
- python-version: '3.10' # avoid uploading coverage for full matrix
use_coverage: true
- python-version: "3.8" # this is to avoid installing optional dependencies in all environments
optional-dependencies: tensorflow sympy torch scikit-learn
- python-version: '3.10' # install ML AI dependencies with coverage run
optional-dependencies: -r requirements-mlai.txt
- python-version: '3.11' # install ML AI dependencies with a newer Python version
optional-dependencies: -r requirements-mlai.txt
env:
# uncomment this to debug Qt initialization errors
# QT_DEBUG_PLUGINS: '1'
MPLBACKEND: AGG
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Conda
uses: conda-incubator/setup-miniconda@v2
uses: conda-incubator/setup-miniconda@v3
with:
activate-environment: ${{ env.FOQUS_CONDA_ENV_NAME_DEV }}
python-version: ${{ matrix.python-version }}
miniconda-version: latest
- name: Set up FOQUS
uses: ./.github/actions/setup-foqus
with:
pip-install-target: -r requirements-dev.txt ${{ matrix.optional-dependencies }}
- name: Set common pytest flags
run:
echo 'PYTEST_ADDOPTS=--pyargs foqus_lib --verbose --color=yes --basetemp "${{ env.PYTEST_BASETEMP }}"' >> $GITHUB_ENV
- name: Set up GUI test environment (Linux)
if: contains(matrix.os, 'linux')
run: |
echo "QT_QPA_PLATFORM=minimal" >> $GITHUB_ENV
- name: Run pytest (default options)
if: "! matrix.use_coverage"
run: |
pytest foqus_lib/
- name: Run pytest (coverage)
- name: Set common pytest flags
run:
echo 'PYTEST_ADDOPTS=--pyargs foqus_lib --maxfail=3 --verbose --color=yes --basetemp "${{ env.PYTEST_BASETEMP }}"' >> $GITHUB_ENV
- name: Add pytest coverage flags
if: matrix.use_coverage
run:
echo "PYTEST_ADDOPTS=$PYTEST_ADDOPTS --cov=./ --cov-report=xml --cov-report=term" >> $GITHUB_ENV
- name: Run pytest
run: |
pytest foqus_lib/ --cov=./ --cov-report=xml --cov-report=term
pytest foqus_lib/
- name: Upload pytest artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
if: always()
with:
# TODO decide if we need a separate upload for each Python version
name: pytest-dir-${{ matrix.os }}-py${{ matrix.python-version }}
path: ${{ env.PYTEST_BASETEMP }}
retention-days: 7
- name: Upload coverage report as job artifact
if: always() && matrix.use_coverage
uses: actions/upload-artifact@v4
with:
name: coverage-report-${{ matrix.os }}
path: coverage.xml
if-no-files-found: error

upload-coverage:
name: Upload coverage report (Codecov)
needs: [pytest]
runs-on: ubuntu-latest
steps:
# the checkout step is needed to have access to codecov.yml
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
pattern: coverage-report-*
- name: Upload coverage report to Codecov
if: matrix.use_coverage
uses: codecov/codecov-action@v2
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
verbose: true
# NOTE: secrets are not available for pull_request workflows
# However, as of 2024-02-10, Codecov is still allowing tokenless upload from PRs
# but does require token for other workflows e.g. merge to `main`
# see https://github.com/codecov/codecov-action/issues/1274#issuecomment-1934437359
token: ${{ secrets.CODECOV_TOKEN }}
# pinning version after v0.7.0 broke tokenless upload
# see codecov/codecov-action#1487
version: v0.7.2

pylint:
name: pylint (py${{ matrix.python-version }})
Expand All @@ -123,14 +167,15 @@ jobs:
fail-fast: false
matrix:
python-version:
- '3.7'
- '3.8'
- '3.9'
# - '3.10'
- '3.10'
- '3.11'
- '3.12'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Conda
uses: conda-incubator/setup-miniconda@v2
uses: conda-incubator/setup-miniconda@v3
with:
activate-environment: ${{ env.FOQUS_CONDA_ENV_NAME_DEV }}
python-version: ${{ matrix.python-version }}
Expand All @@ -140,15 +185,15 @@ jobs:
pip-install-target: -r requirements-dev.txt
- name: Run pylint
run: |
pylint --rcfile=.pylint/pylintrc --disable=W,C,R,I foqus_lib/
pylint --rcfile=.pylint/pylintrc --disable=all --enable=E --enable=wrong-import-order foqus_lib/

docs:
name: Build docs
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Conda
uses: conda-incubator/setup-miniconda@v2
uses: conda-incubator/setup-miniconda@v3
with:
activate-environment: ${{ env.FOQUS_CONDA_ENV_NAME_DEV }}
python-version: ${{ matrix.python-version }}
Expand Down
7 changes: 3 additions & 4 deletions .github/workflows/nightlies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,8 @@ jobs:
fail-fast: false
matrix:
python-version:
- '3.7'
- '3.8'
# - '3.9'
- '3.9'
os:
- linux
- win64
Expand All @@ -37,7 +36,7 @@ jobs:
- '3.9.0'
include:
- os: macos
os-version: macos-10.15
os-version: macos-12
- os: linux
os-version: ubuntu-20.04
- os: win64
Expand All @@ -59,7 +58,7 @@ jobs:
pip_install_target: ${{ matrix.pip-install-target }}
run: |
echo '::group::Output of conda create/activate/install'
conda create --name ccsi-foqus --quiet --yes -c conda-forge python="$py_ver" pywin32
conda create --name ccsi-foqus --quiet --yes -c conda-forge python="$py_ver" pywin32=306
conda activate ccsi-foqus
conda install --yes -c CCSI-Toolset -c conda-forge psuade-lite=1.9
echo '::endgroup::'
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ eggs/
*.lib
*.suo
*.zip
Pipfile

# OSX
*.DS_Store
Expand Down
7 changes: 3 additions & 4 deletions .pylint/foqus_transform.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
###############################################################################
# FOQUS Copyright (c) 2012 - 2021, by the software owners: Oak Ridge Institute
#################################################################################
# FOQUS Copyright (c) 2012 - 2024, by the software owners: Oak Ridge Institute
# for Science and Education (ORISE), TRIAD National Security, LLC., Lawrence
# Livermore National Security, LLC., The Regents of the University of
# California, through Lawrence Berkeley National Laboratory, Battelle Memorial
Expand All @@ -11,8 +11,7 @@
# Please see the file LICENSE.md for full copyright and license information,
# respectively. This file is also available online at the URL
# "https://github.com/CCSI-Toolset/FOQUS".
#
###############################################################################
#################################################################################
import astroid


Expand Down
6 changes: 6 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@
# Required
version: 2

# the build.os and build.tools section is mandatory
build:
os: ubuntu-20.04 # for consistency, matches the one used for CI
tools:
python: "3.9"

# Build documentation in the docs/ directory with Sphinx
sphinx:
fail_on_warning: true
Expand Down
46 changes: 46 additions & 0 deletions .typos.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
[files]
extend-exclude = [
"*.smp",
"*.ui",
"*.html",
"*.css",
"*.js",
"*.svg",
"*.foqus",
"*.bkp",
"*.acmf",
"*.for",
"*.his",
"*.def",
"*.ads",
"*.pt",
"*.pkl",
"*.R",
"*.json",
]

[default.extend-words]
# Ignore IDAES
IDAES = "IDAES"
FO = "FO" # TODO: probably an abbreviation?
sur = "sur" # abbreviation for 'surrogate'
nd = "nd" # used as a variable name in sdoeAnalysisDialog
astroid = "astroid" # Python package name
yhat = "yhat" # used as a variable name in SurrogateParser
iy = "iy" # used as a variable name in SurrogateParser
# proper nouns
Gess = "Gess"
# false positives
strat = "strat" # abbreviation of "strategy" used by Hypothesis
arange = "arange" # from numpy.arange function

[default.extend-identifiers]
# false positives
strngComps = "strngComps" # strng = strongly (connected)
# true positives that are part of the API
userInterupt = "userInterupt"
maxTimeInterupt = "maxTimeInterupt"
PyCodeInterupt = "PyCodeInterupt"
simin_nam = "simin_nam"
simout_nam = "simout_nam"
displayAvailablityWarning = "displayAvailablityWarning"
6 changes: 3 additions & 3 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
Copyright and License
=====================

Copyright (c) 2012 - 2023
Copyright (c) 2012 - 2024

Copyright Notice
----------------

Foqus was produced under the DOE Carbon Capture Simulation Initiative (CCSI), and is copyright (c)
2012 - 2023 by the software owners: Oak Ridge Institute for Science and Education (ORISE), TRIAD
2012 - 2024 by the software owners: Oak Ridge Institute for Science and Education (ORISE), TRIAD
National Security, LLC., Lawrence Livermore National Security, LLC., The Regents of the University
of California, through Lawrence Berkeley National Laboratory, Battelle Memorial Institute, Pacific
Northwest Division through Pacific Northwest National Laboratory, Carnegie Mellon University, West
Expand All @@ -23,7 +23,7 @@ publicly and display publicly, and to permit other to do so.
License Agreement
-----------------

Foqus Copyright (c) 2012 - 2023, by the software owners: Oak Ridge Institute for Science and
Foqus Copyright (c) 2012 - 2024, by the software owners: Oak Ridge Institute for Science and
Education (ORISE), TRIAD National Security, LLC., Lawrence Livermore National Security, LLC., The
Regents of the University of California, through Lawrence Berkeley National Laboratory, Battelle
Memorial Institute, Pacific Northwest Division through Pacific Northwest National Laboratory,
Expand Down
Loading
Loading