From d506ca61013b04981487b8d0457b3b5133ac598e Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 05:02:47 -0500 Subject: [PATCH 01/20] update pyinstaller to 6.5 --- backend/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/requirements.txt b/backend/requirements.txt index e080adb3..c8b46489 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -7,7 +7,7 @@ fastapi==0.78.0 h11==0.13.0 idna==3.3 pydantic==1.9.1 -pyinstaller==5.3 +pyinstaller==6.5.0 pyinstaller-hooks-contrib==2022.9 python-multipart==0.0.5 chardet From 98745af71097ac8776805aaa744f3904b4c4e482 Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 05:03:22 -0500 Subject: [PATCH 02/20] test build --- .github/workflows/electron-build.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/electron-build.yml b/.github/workflows/electron-build.yml index c18adf0b..4069bbf4 100644 --- a/.github/workflows/electron-build.yml +++ b/.github/workflows/electron-build.yml @@ -3,7 +3,7 @@ name: App build on: push: branches: - - "0.11.0" + - "update-package-versions" defaults: run: @@ -62,17 +62,17 @@ jobs: # install slightly older versions of numpy, pandas, and scipy. # having issues when freezing the latest packages of each (numpy 1.26, pandas 2.1, scipy 1.11) - - name: Install numpy 1.24.3 - run: | - pip uninstall -y numpy && pip install numpy==1.24.3 + # - name: Install numpy 1.24.3 + # run: | + # pip uninstall -y numpy && pip install numpy==1.24.3 - - name: Install pandas 2.0.3 - run: | - pip uninstall -y pandas && pip install pandas==2.0.3 + # - name: Install pandas 2.0.3 + # run: | + # pip uninstall -y pandas && pip install pandas==2.0.3 - - name: Install scipy 1.9.1 - run: | - pip uninstall -y scipy && pip install scipy==1.9.1 + # - name: Install scipy 1.9.1 + # run: | + # pip uninstall -y scipy && pip install scipy==1.9.1 - name: Build Backend run: npm --prefix electron run build-backend From 6b98c6fd62fac1bd2a61771d7765d640841a4a96 Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 05:04:25 -0500 Subject: [PATCH 03/20] test build --- .github/workflows/electron-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/electron-build.yml b/.github/workflows/electron-build.yml index 4069bbf4..ae9119ff 100644 --- a/.github/workflows/electron-build.yml +++ b/.github/workflows/electron-build.yml @@ -50,7 +50,7 @@ jobs: - name: Install Watertap locally working-directory: ../ - run: git clone https://github.com/watertap-org/watertap.git && cd watertap && git fetch --all --tags && git checkout 0.11.0 && pip install --progress-bar off . + run: git clone https://github.com/watertap-org/watertap.git && cd watertap && pip install --progress-bar off . - name: Transfer Entry points run: | From 7280991a85eebd43d97977eced0f22802c50ef81 Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 05:29:42 -0500 Subject: [PATCH 04/20] remove pyinstaller-hooks-contrib from requirements --- backend/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/requirements.txt b/backend/requirements.txt index c8b46489..13ca7b5a 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -8,7 +8,7 @@ h11==0.13.0 idna==3.3 pydantic==1.9.1 pyinstaller==6.5.0 -pyinstaller-hooks-contrib==2022.9 +# pyinstaller-hooks-contrib==2022.9 python-multipart==0.0.5 chardet pyyaml From 78fb96543f869da9f81c4ff6086102caabbdcd2c Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 09:51:28 -0500 Subject: [PATCH 05/20] revert build file changes --- .github/workflows/electron-build.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/electron-build.yml b/.github/workflows/electron-build.yml index ae9119ff..aee04ebc 100644 --- a/.github/workflows/electron-build.yml +++ b/.github/workflows/electron-build.yml @@ -62,17 +62,17 @@ jobs: # install slightly older versions of numpy, pandas, and scipy. # having issues when freezing the latest packages of each (numpy 1.26, pandas 2.1, scipy 1.11) - # - name: Install numpy 1.24.3 - # run: | - # pip uninstall -y numpy && pip install numpy==1.24.3 + - name: Install numpy 1.24.3 + run: | + pip uninstall -y numpy && pip install numpy==1.24.3 - # - name: Install pandas 2.0.3 - # run: | - # pip uninstall -y pandas && pip install pandas==2.0.3 + - name: Install pandas 2.0.3 + run: | + pip uninstall -y pandas && pip install pandas==2.0.3 - # - name: Install scipy 1.9.1 - # run: | - # pip uninstall -y scipy && pip install scipy==1.9.1 + - name: Install scipy 1.9.1 + run: | + pip uninstall -y scipy && pip install scipy==1.9.1 - name: Build Backend run: npm --prefix electron run build-backend From 7d99b4dfdccc7816468ad68a53161962c898beba Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 09:52:47 -0500 Subject: [PATCH 06/20] update pydantic, fastapi versions; migrate pydantic models to v2 --- backend/app/internal/flowsheet_manager.py | 18 +++++++++----- backend/app/internal/settings.py | 24 ++++++++++--------- backend/app/routers/flowsheets.py | 6 ++++- backend/requirements.txt | 4 ++-- .../FlowsheetsListTable.js | 2 +- 5 files changed, 33 insertions(+), 21 deletions(-) diff --git a/backend/app/internal/flowsheet_manager.py b/backend/app/internal/flowsheet_manager.py index ded9e9ad..0d997d61 100644 --- a/backend/app/internal/flowsheet_manager.py +++ b/backend/app/internal/flowsheet_manager.py @@ -16,12 +16,12 @@ from pathlib import Path import time from types import ModuleType -from typing import Optional, Dict, List +from typing import Optional, Dict, List, Union import app # third-party from fastapi import HTTPException -from pydantic import BaseModel, validator +from pydantic import BaseModel, validator, field_validator, ValidationInfo, Field import tinydb # JSON single-file 'database' # package-local @@ -40,19 +40,25 @@ class FlowsheetInfo(BaseModel): # static information id_: str name: str - description: str = "" + description: Union[None, str] = Field(default="", validate_default=True) module: str = "" build_options: dict = {} # current status of flowsheet built: bool = False ts: float = 0 # time last updated (including built) - last_run: str = "" + last_run: Union[str, float] = "" custom: bool = False # Make sure name is lowercase - @validator("name") - def normalize_name(cls, v: str, values): + @field_validator("name") + def normalize_name(cls, v: str, info: ValidationInfo): return v.lower() + + @field_validator("description") + def validate_description(cls, v: str, info: ValidationInfo): + if not v or v == "": + v = f"{info.data['name']} flowsheet" + return v def updated(self, built: Optional[bool] = None): self.ts = time.time() diff --git a/backend/app/internal/settings.py b/backend/app/internal/settings.py index fcbefba4..c2eab55c 100644 --- a/backend/app/internal/settings.py +++ b/backend/app/internal/settings.py @@ -3,28 +3,29 @@ """ from pathlib import Path import logging -from typing import List -from pydantic import ( - BaseSettings, - validator -) +from typing import List, Union +from pydantic import validator, field_validator +from pydantic_settings import BaseSettings + class AppSettings(BaseSettings): #: List of package names in which to look for flowsheets packages: List[str] = ["watertap"] - data_basedir: Path = None - log_dir: Path = None - custom_flowsheets_dir: Path = None + data_basedir: Union[Path, None] = None + log_dir: Union[Path, None] = None + custom_flowsheets_dir: Union[Path, None] = None - @validator("data_basedir", always=True) + # @validator("data_basedir", always=True) + @field_validator("data_basedir") def validate_data_basedir(cls, v): if v is None: v = Path.home() / ".watertap" / "flowsheets" v.mkdir(parents=True, exist_ok=True) return v - @validator("log_dir", always=True) + # @validator("log_dir", always=True) + @field_validator("log_dir") def validate_log_dir(cls, v): if v is None: v = Path.home() / ".watertap" / "logs" @@ -35,7 +36,8 @@ def validate_log_dir(cls, v): logging.basicConfig(level=logging.INFO, format=loggingFormat, handlers=[loggingFileHandler]) return v - @validator("custom_flowsheets_dir", always=True) + # @validator("custom_flowsheets_dir", always=True) + @field_validator("custom_flowsheets_dir") def validate_custom_flowsheets_dir(cls, v): if v is None: v = Path.home() / ".watertap" / "custom_flowsheets" diff --git a/backend/app/routers/flowsheets.py b/backend/app/routers/flowsheets.py index 7588e1b4..8c644c56 100644 --- a/backend/app/routers/flowsheets.py +++ b/backend/app/routers/flowsheets.py @@ -37,7 +37,7 @@ flowsheet_manager = FlowsheetManager() -@router.get("/", response_model=Dict[str, Union[List[FlowsheetInfo], int]]) +@router.get("/", response_model=Dict[str, Union[List, int]]) async def get_all(): """Get basic information about all available flowsheets. @@ -77,8 +77,12 @@ async def get_config(id_: str, build: str = "0") -> FlowsheetExport: flowsheet = flowsheet_manager.get_obj(id_) if build == "1": info = flowsheet_manager.get_info(id_) + _log.info(f"build param is 1, got info") flowsheet.build(build_options=flowsheet.fs_exp.build_options) + _log.info(f"BUILT FLOWSHEET CHUZ") info.updated(built=True) + _log.info(f"updated has been confirmed") + _log.info(f"returning flowsheett .fs_exp") return flowsheet.fs_exp diff --git a/backend/requirements.txt b/backend/requirements.txt index 13ca7b5a..818c0563 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -3,10 +3,10 @@ anyio==3.6.1 asgiref==3.5.2 certifi==2021.10.8 click==8.1.3 -fastapi==0.78.0 +fastapi==0.110.0 h11==0.13.0 idna==3.3 -pydantic==1.9.1 +pydantic==2.6.4 pyinstaller==6.5.0 # pyinstaller-hooks-contrib==2022.9 python-multipart==0.0.5 diff --git a/electron/ui/src/components/FlowsheetsListTable/FlowsheetsListTable.js b/electron/ui/src/components/FlowsheetsListTable/FlowsheetsListTable.js index ab673351..a41ee588 100644 --- a/electron/ui/src/components/FlowsheetsListTable/FlowsheetsListTable.js +++ b/electron/ui/src/components/FlowsheetsListTable/FlowsheetsListTable.js @@ -101,7 +101,7 @@ export default function FlowsheetsListTable(props) { const formatLastRun = (time) => { try { - if (time && time.length >= 11) { + if (time) { let full_date = new Date(parseFloat(time) * 1000) return full_date.toLocaleString().split(',')[0]; } From a9f097d9b4fbdd659c58115dcb380554b6cb87d1 Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 09:58:36 -0500 Subject: [PATCH 07/20] remove starlette from requirements.txt --- backend/requirements.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backend/requirements.txt b/backend/requirements.txt index 818c0563..4d82db20 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -15,8 +15,7 @@ pyyaml requests tinydb sniffio==1.2.0 -starlette==0.19.1 -typing_extensions==4.2.0 +typing_extensions==4.9.0 uvicorn==0.17.6 importlib_resources==5.9.0 ; python_version < "3.10" git+https://github.com/watertap-org/watertap.git From c6147cd7023537f53c05a35521fb7502fd6e6dae Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 09:59:37 -0500 Subject: [PATCH 08/20] update requirements-dev --- backend/requirements-dev.txt | 8 +++----- backend/requirements.txt | 1 - 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/backend/requirements-dev.txt b/backend/requirements-dev.txt index 90a461b0..d64b250d 100644 --- a/backend/requirements-dev.txt +++ b/backend/requirements-dev.txt @@ -6,17 +6,15 @@ click==8.1.3 fastapi==0.78.0 h11==0.12.0 idna==3.3 -pydantic==1.9.1 -pyinstaller==5.3 -pyinstaller-hooks-contrib==2022.9 +pydantic==2.6.4 +pyinstaller==6.5.0 python-multipart==0.0.5 chardet pyyaml sniffio==1.2.0 -starlette==0.19.1 tinydb requests -typing_extensions==4.2.0 +typing_extensions==4.9.0 uvicorn==0.17.6 importlib_resources==5.9.0 ; python_version < "3.10" # install watertap from main diff --git a/backend/requirements.txt b/backend/requirements.txt index 4d82db20..3bc2cf8b 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -8,7 +8,6 @@ h11==0.13.0 idna==3.3 pydantic==2.6.4 pyinstaller==6.5.0 -# pyinstaller-hooks-contrib==2022.9 python-multipart==0.0.5 chardet pyyaml From 8800e4b9ce9c76d781723c0a9a0fd76c70ab5b40 Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 10:05:29 -0500 Subject: [PATCH 09/20] pull watertap from my branch --- backend/requirements-dev.txt | 3 ++- backend/requirements.txt | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/requirements-dev.txt b/backend/requirements-dev.txt index d64b250d..1a0a17d2 100644 --- a/backend/requirements-dev.txt +++ b/backend/requirements-dev.txt @@ -18,4 +18,5 @@ typing_extensions==4.9.0 uvicorn==0.17.6 importlib_resources==5.9.0 ; python_version < "3.10" # install watertap from main -git+https://github.com/watertap-org/watertap.git +# git+https://github.com/watertap-org/watertap.git +watertap @ git+https://github.com/MichaelPesce/watertap@update-pydantic diff --git a/backend/requirements.txt b/backend/requirements.txt index 3bc2cf8b..d3a9efe3 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -17,5 +17,6 @@ sniffio==1.2.0 typing_extensions==4.9.0 uvicorn==0.17.6 importlib_resources==5.9.0 ; python_version < "3.10" -git+https://github.com/watertap-org/watertap.git +# git+https://github.com/watertap-org/watertap.git +watertap @ git+https://github.com/MichaelPesce/watertap@update-pydantic From 41d0fdb8574e402b7af07bce19d4802d13703d29 Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 10:13:59 -0500 Subject: [PATCH 10/20] remove additional installation of watertap from workflow files --- .github/workflows/electron-build.yml | 6 +++--- .github/workflows/main.yml | 10 +++++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/electron-build.yml b/.github/workflows/electron-build.yml index aee04ebc..4b2a1e8d 100644 --- a/.github/workflows/electron-build.yml +++ b/.github/workflows/electron-build.yml @@ -48,9 +48,9 @@ jobs: # working-directory: ../ # run: git clone https://github.com/MichaelPesce/watertap.git && cd watertap && git fetch --all && git checkout 0.11.0 && pip install --progress-bar off . - - name: Install Watertap locally - working-directory: ../ - run: git clone https://github.com/watertap-org/watertap.git && cd watertap && pip install --progress-bar off . + # - name: Install Watertap locally + # working-directory: ../ + # run: git clone https://github.com/watertap-org/watertap.git && cd watertap && pip install --progress-bar off . - name: Transfer Entry points run: | diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 53863cce..96db77a5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -64,9 +64,9 @@ jobs: # working-directory: ../ # run: git clone https://github.com/MichaelPesce/watertap.git && cd watertap && git fetch --all && git checkout build-options && pip install --progress-bar off . - - name: Install correct branch of watertap - working-directory: ../ - run: git clone https://github.com/MichaelPesce/watertap.git && cd watertap && pip install --progress-bar off . + # - name: Install correct branch of watertap + # working-directory: ../ + # run: git clone https://github.com/MichaelPesce/watertap.git && cd watertap && pip install --progress-bar off . - name: Display installed environment run: | @@ -129,6 +129,10 @@ jobs: run: | pip install --progress-bar off . + - name: Install httpx + run: | + pip install httpx + # - name: Install my fork of watertap # working-directory: ../ # run: git clone https://github.com/MichaelPesce/watertap.git && cd watertap && git fetch --all && git checkout build-options && pip install --progress-bar off . From 7031461d05f2875d5c63045818f4f2d0270d2991 Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 10:25:09 -0500 Subject: [PATCH 11/20] add pydantic-settings to requirements file --- backend/requirements-dev.txt | 1 + backend/requirements.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/backend/requirements-dev.txt b/backend/requirements-dev.txt index 1a0a17d2..613e92fb 100644 --- a/backend/requirements-dev.txt +++ b/backend/requirements-dev.txt @@ -7,6 +7,7 @@ fastapi==0.78.0 h11==0.12.0 idna==3.3 pydantic==2.6.4 +pydantic-settings==2.2.1 pyinstaller==6.5.0 python-multipart==0.0.5 chardet diff --git a/backend/requirements.txt b/backend/requirements.txt index d3a9efe3..3d69fa09 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -7,6 +7,7 @@ fastapi==0.110.0 h11==0.13.0 idna==3.3 pydantic==2.6.4 +pydantic-settings==2.2.1 pyinstaller==6.5.0 python-multipart==0.0.5 chardet From 6cbbdabd4f77243d9a099f61f92c4ec22c6c79b6 Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 12:44:48 -0500 Subject: [PATCH 12/20] install watertap locally for build --- .github/workflows/electron-build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/electron-build.yml b/.github/workflows/electron-build.yml index 4b2a1e8d..f6daa82c 100644 --- a/.github/workflows/electron-build.yml +++ b/.github/workflows/electron-build.yml @@ -44,9 +44,9 @@ jobs: - name: Get idaes extensions run: idaes get-extensions - # - name: Install Watertap locally - # working-directory: ../ - # run: git clone https://github.com/MichaelPesce/watertap.git && cd watertap && git fetch --all && git checkout 0.11.0 && pip install --progress-bar off . + - name: Install Watertap locally + working-directory: ../ + run: git clone https://github.com/MichaelPesce/watertap.git && cd watertap && git fetch --all && git checkout update-pydantic && pip install --progress-bar off . # - name: Install Watertap locally # working-directory: ../ From a36e9a5acd48a1b24464164d75bdf450f439b613 Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 12:46:28 -0500 Subject: [PATCH 13/20] use my fork for pytest --- .github/workflows/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 96db77a5..dbf740b1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -133,9 +133,9 @@ jobs: run: | pip install httpx - # - name: Install my fork of watertap - # working-directory: ../ - # run: git clone https://github.com/MichaelPesce/watertap.git && cd watertap && git fetch --all && git checkout build-options && pip install --progress-bar off . + - name: Install my fork of watertap + working-directory: ../ + run: git clone https://github.com/MichaelPesce/watertap.git && cd watertap && git fetch --all && git checkout update-pydantic && pip install --progress-bar off . - name: get idaes extensions run: idaes get-extensions From 1f527b0e7bd3ee108ced4e48355b7d76c7df897a Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 12:50:43 -0500 Subject: [PATCH 14/20] add httpx to requirements-dev --- backend/requirements-dev.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/requirements-dev.txt b/backend/requirements-dev.txt index 613e92fb..15f76087 100644 --- a/backend/requirements-dev.txt +++ b/backend/requirements-dev.txt @@ -5,6 +5,7 @@ certifi==2021.10.8 click==8.1.3 fastapi==0.78.0 h11==0.12.0 +httpx==0.27.0 idna==3.3 pydantic==2.6.4 pydantic-settings==2.2.1 From fa3d54d218e3b4076bb2c8aa83b23c9b6e0f4956 Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 13:04:10 -0500 Subject: [PATCH 15/20] update test_download function to read entire content --- backend/tests/app/routers/test_flowsheets.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/backend/tests/app/routers/test_flowsheets.py b/backend/tests/app/routers/test_flowsheets.py index c4e2ad9c..cf0c36b0 100644 --- a/backend/tests/app/routers/test_flowsheets.py +++ b/backend/tests/app/routers/test_flowsheets.py @@ -268,9 +268,7 @@ def test_download(client, flowsheet_id): client, flowsheet_id, "download", compare_data, get_body=False ) assert response.status_code == 200 - csv_data = "" - for chunk in response.iter_content(65536): - csv_data += str(chunk, encoding="utf-8") + csv_data = str(response.content, encoding="utf-8") if "\r\n" in csv_data: sep = "\r\n" else: From a08844e86fe235c7d3b1d563d3fae8f620a3432c Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 13:19:20 -0500 Subject: [PATCH 16/20] update pyomo packages for pyinstaller hook --- backend/app/main-hooks/hook-watertap.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/backend/app/main-hooks/hook-watertap.py b/backend/app/main-hooks/hook-watertap.py index 7fdbffa7..ffda61a0 100644 --- a/backend/app/main-hooks/hook-watertap.py +++ b/backend/app/main-hooks/hook-watertap.py @@ -102,21 +102,20 @@ 'pyomo.contrib.mcpp.plugins', 'pyomo.contrib.mindtpy.plugins', 'pyomo.contrib.multistart.plugins', 'pyomo.contrib.preprocessing.plugins', 'pyomo.contrib.pynumero.plugins', 'pyomo.contrib.trustregion.plugins', 'pyomo.repn.util', 'pyomo.contrib.gdpbb', 'pyomo.contrib.gdpbb.plugins', 'pint', 'numbers', - 'pyutilib', 'pyomo', 'pyomo.environ', 'pyomo.age', 'pyomo.bilevel', 'pyomo.bilevel.plugins', - 'pyomo.core', 'pyomo.core.plugins', 'pyomo.dae', 'pyomo.dae.plugins', 'pyomo.gdp', 'pyomo.gdp.plugins', - 'pyomo.neos', 'pyomo.neos.plugins', 'pyomo.opt', 'pyomo.opt.plugins', 'pyomo.pysp', 'pyomo.pysp.plugins', - 'pyomo.solvers.plugins', 'pyomo.solvers', 'pyomo.checker', 'pyomo.checker.plugins', 'pyomo.contrib', - 'pyomo.contrib.plugins', 'pyomo.dataportal', 'pyomo.dataportal.plugins', 'pyomo.duality', - 'pyomo.duality.plugins', 'pyomo.kernel', 'pyomo.kernel.plugins', 'pyomo.mpec', 'pyomo.mpec.plugins', + 'pyutilib', 'pyomo', 'pyomo.environ', 'pyomo.core', 'pyomo.core.plugins', 'pyomo.dae', 'pyomo.dae.plugins', + 'pyomo.gdp', 'pyomo.gdp.plugins', 'pyomo.neos', 'pyomo.neos.plugins', 'pyomo.opt', 'pyomo.opt.plugins', + 'pyomo.pysp', 'pyomo.pysp.plugins', 'pyomo.solvers.plugins', 'pyomo.solvers', 'pyomo.contrib', + 'pyomo.dataportal', 'pyomo.dataportal.plugins', 'pyomo.duality', 'pyomo.contrib.solver.plugins', + 'pyomo.duality.plugins', 'pyomo.kernel', 'pyomo.mpec', 'pyomo.mpec.plugins', 'pyomo.contrib.solver', 'pyomo.network', 'pyomo.network.plugins', 'pyomo.repn', 'pyomo.repn.plugins', 'pyomo.scripting', - 'pyomo.scripting.plugins', 'pyomo.util', 'pyomo.util.plugins', 'pyomo.common', 'pyomo.common.plugins', + 'pyomo.scripting.plugins', 'pyomo.util', 'pyomo.common', 'pyomo.common.plugins', 'sys', 'logging', 're', 'sys', 'pyomo.core.expr.numvalue', 'pyomo.core.expr.numvalue', 'pyomo.solvers.plugins.solvers.direct_solver', 'pyomo.solvers.plugins.solvers.direct_or_persistent_solver', 'pyomo.core.kernel.component_set', 'pyomo.core.kernel.component_map', 'pyomo.opt.results.results_', 'pyomo.opt.results.solution', 'pyomo.opt.results.solver', 'pyomo.opt.base', 'pyomo.core.base.suffix', 'pyomo.core.base.var', 'pyomo.core.base.PyomoModel', 'pyomo.solvers.plugins.solvers.persistent_solver', 'pyomo.opt.base.problem', 'pyomo.opt.base.convert', 'pyomo.opt.base.formats', 'pyomo.opt.base.results', - 'pyomo.core.base.block', 'pyomo.core.kernel.block', 'pyomo.core.kernel.suffix','pyomo.contrib.cp.plugins' + 'pyomo.core.base.block', 'pyomo.core.kernel.block', 'pyomo.core.kernel.suffix','pyomo.contrib.cp.plugins', ] hiddenimports.extend(pyomo_imports) From d69e1e145eebbe832ef4d504e038ec23b8221124 Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 13:19:32 -0500 Subject: [PATCH 17/20] import validation error from pydantic --- backend/app/routers/flowsheets.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backend/app/routers/flowsheets.py b/backend/app/routers/flowsheets.py index 8c644c56..cf00bb7e 100644 --- a/backend/app/routers/flowsheets.py +++ b/backend/app/routers/flowsheets.py @@ -12,8 +12,7 @@ from fastapi.responses import StreamingResponse from fastapi.responses import FileResponse import pandas as pd -from pydantic import BaseModel -from pydantic.error_wrappers import ValidationError +from pydantic import ValidationError import re # package-local From bffeac062fb2c11e34879dcee23b06aef17114a9 Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 13:21:41 -0500 Subject: [PATCH 18/20] remove unnecessary validation for flowsheetinfo description --- backend/app/internal/flowsheet_manager.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/backend/app/internal/flowsheet_manager.py b/backend/app/internal/flowsheet_manager.py index 0d997d61..e831080a 100644 --- a/backend/app/internal/flowsheet_manager.py +++ b/backend/app/internal/flowsheet_manager.py @@ -53,12 +53,6 @@ class FlowsheetInfo(BaseModel): @field_validator("name") def normalize_name(cls, v: str, info: ValidationInfo): return v.lower() - - @field_validator("description") - def validate_description(cls, v: str, info: ValidationInfo): - if not v or v == "": - v = f"{info.data['name']} flowsheet" - return v def updated(self, built: Optional[bool] = None): self.ts = time.time() From e1242efa076146a4066d0dcbf9265fde7907f8ad Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 18 Mar 2024 14:47:52 -0500 Subject: [PATCH 19/20] revert pyinstaller to version 5.3; 6.5.0 version caused issues with finding entrypoints --- backend/requirements-dev.txt | 2 +- backend/requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/requirements-dev.txt b/backend/requirements-dev.txt index 15f76087..51d4c611 100644 --- a/backend/requirements-dev.txt +++ b/backend/requirements-dev.txt @@ -9,7 +9,7 @@ httpx==0.27.0 idna==3.3 pydantic==2.6.4 pydantic-settings==2.2.1 -pyinstaller==6.5.0 +pyinstaller==5.3 python-multipart==0.0.5 chardet pyyaml diff --git a/backend/requirements.txt b/backend/requirements.txt index 3d69fa09..bbe0a007 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -8,7 +8,7 @@ h11==0.13.0 idna==3.3 pydantic==2.6.4 pydantic-settings==2.2.1 -pyinstaller==6.5.0 +pyinstaller==5.3 python-multipart==0.0.5 chardet pyyaml From a82d30f9e00654ec4ed0a4e78d9e2d6faa3eb511 Mon Sep 17 00:00:00 2001 From: MichaelPesce Date: Mon, 25 Mar 2024 12:26:45 -0500 Subject: [PATCH 20/20] change back to using watertap main --- .github/workflows/electron-build.yml | 12 ++++++------ .github/workflows/main.yml | 6 +++--- backend/requirements-dev.txt | 3 +-- backend/requirements.txt | 4 ++-- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/.github/workflows/electron-build.yml b/.github/workflows/electron-build.yml index f6daa82c..73ea0e70 100644 --- a/.github/workflows/electron-build.yml +++ b/.github/workflows/electron-build.yml @@ -44,13 +44,13 @@ jobs: - name: Get idaes extensions run: idaes get-extensions - - name: Install Watertap locally - working-directory: ../ - run: git clone https://github.com/MichaelPesce/watertap.git && cd watertap && git fetch --all && git checkout update-pydantic && pip install --progress-bar off . - # - name: Install Watertap locally # working-directory: ../ - # run: git clone https://github.com/watertap-org/watertap.git && cd watertap && pip install --progress-bar off . + # run: git clone https://github.com/MichaelPesce/watertap.git && cd watertap && git fetch --all && git checkout update-pydantic && pip install --progress-bar off . + + - name: Install Watertap locally + working-directory: ../ + run: git clone https://github.com/watertap-org/watertap.git && cd watertap && pip install --progress-bar off . - name: Transfer Entry points run: | @@ -194,7 +194,7 @@ jobs: - name: Install Watertap locally working-directory: ../ - run: git clone https://github.com/watertap-org/watertap.git && cd watertap && git fetch --all --tags && git checkout 0.9.0rc0 && pip install --progress-bar off . + run: git clone https://github.com/watertap-org/watertap.git && cd watertap && pip install --progress-bar off . - name: Transfer Entry points run: | diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index dbf740b1..7e39ede9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -133,9 +133,9 @@ jobs: run: | pip install httpx - - name: Install my fork of watertap - working-directory: ../ - run: git clone https://github.com/MichaelPesce/watertap.git && cd watertap && git fetch --all && git checkout update-pydantic && pip install --progress-bar off . + # - name: Install my fork of watertap + # working-directory: ../ + # run: git clone https://github.com/MichaelPesce/watertap.git && cd watertap && git fetch --all && git checkout update-pydantic && pip install --progress-bar off . - name: get idaes extensions run: idaes get-extensions diff --git a/backend/requirements-dev.txt b/backend/requirements-dev.txt index 51d4c611..a40539d6 100644 --- a/backend/requirements-dev.txt +++ b/backend/requirements-dev.txt @@ -20,5 +20,4 @@ typing_extensions==4.9.0 uvicorn==0.17.6 importlib_resources==5.9.0 ; python_version < "3.10" # install watertap from main -# git+https://github.com/watertap-org/watertap.git -watertap @ git+https://github.com/MichaelPesce/watertap@update-pydantic +git+https://github.com/watertap-org/watertap.git diff --git a/backend/requirements.txt b/backend/requirements.txt index bbe0a007..012c18f0 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -18,6 +18,6 @@ sniffio==1.2.0 typing_extensions==4.9.0 uvicorn==0.17.6 importlib_resources==5.9.0 ; python_version < "3.10" -# git+https://github.com/watertap-org/watertap.git -watertap @ git+https://github.com/MichaelPesce/watertap@update-pydantic +git+https://github.com/watertap-org/watertap.git +# watertap @ git+https://github.com/MichaelPesce/watertap@update-pydantic