From f05ea9ea635aae5737da448c80531c147372bc05 Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Wed, 30 Oct 2024 12:19:28 -0600 Subject: [PATCH 01/20] more closely align linux/mac conda envs --- py3-opgee-linux.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/py3-opgee-linux.yml b/py3-opgee-linux.yml index adfd0bf3..7050ab6d 100644 --- a/py3-opgee-linux.yml +++ b/py3-opgee-linux.yml @@ -10,12 +10,10 @@ dependencies: - dask - dask-jobqueue - graphviz - - python-graphviz - jinja2 - llvm-openmp - lxml - networkx - - nuitka - numba - numpy - pandas @@ -24,17 +22,18 @@ dependencies: - pip - pydot - pytest + - python-graphviz - python>=3.9.0,<3.10.0 - semver - setuptools - - sphinx>=4.3.0 + - sphinx - sphinx-argparse - - sphinx_rtd_theme>=0.5.1 + - sphinx_rtd_theme - sphinxcontrib-serializinghtml - pip: - - dash-cytoscape==0.3.0 - - pyXSteam==0.4.9 - - thermosteam==0.34.0 + - dash-cytoscape + - pyXSteam + - thermosteam - fluids==1.0.24 - chemicals==1.1.4 - thermo==0.2.25 From 305c9db2d4ae9f10210b21f2da562eff91a0a10c Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Wed, 30 Oct 2024 12:39:42 -0600 Subject: [PATCH 02/20] remove cython, update env export, add test step --- .github/workflows/opgee-test.yml | 4 +++- opgee-linux64.pkg_list.txt | 6 +++--- py3-opgee-linux.yml | 1 - 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/opgee-test.yml b/.github/workflows/opgee-test.yml index b55cd719..933202ee 100644 --- a/.github/workflows/opgee-test.yml +++ b/.github/workflows/opgee-test.yml @@ -52,4 +52,6 @@ jobs: pip install -e . python -m pip install -e . pip install pytest-cov codecov coveralls PyYAML - if: steps.pip-cache.outputs.cache-hit != 'true' || steps.opgee-env-cache.cache-hit != 'true' \ No newline at end of file + if: steps.pip-cache.outputs.cache-hit != 'true' || steps.opgee-env-cache.cache-hit != 'true' + - name: Run unit tests with coverage + run: coverage run --source=opgee -m pytest diff --git a/opgee-linux64.pkg_list.txt b/opgee-linux64.pkg_list.txt index b6162271..cd1c29f9 100644 --- a/opgee-linux64.pkg_list.txt +++ b/opgee-linux64.pkg_list.txt @@ -57,7 +57,7 @@ dask-jobqueue=0.8.2=py39h06a4308_0 decorator=5.1.1=pypi_0 distributed=2024.5.0=py39h06a4308_0 docutils=0.18.1=py39h06a4308_3 -et-xmlfile=1.1.0=pypi_0 +et-xmlfile=2.0.0=pypi_0 exceptiongroup=1.2.0=py39h06a4308_0 executing=2.1.0=pypi_0 expat=2.6.3=h6a678d5_0 @@ -165,7 +165,7 @@ nspr=4.35=h6a678d5_0 nss=3.89.1=h6a678d5_0 nuitka=1.5.8=py39h5eee18b_0 numba=0.60.0=py39h6a678d5_0 -numexpr=2.8.7=py39h286c3b5_0 +numexpr=2.10.1=py39hd28fd6d_0 numpy=1.26.4=py39heeff2f4_0 numpy-base=1.26.4=py39h8a23956_0 openjpeg=2.5.2=he7f1fd0_0 @@ -236,7 +236,7 @@ sqlite=3.45.3=h5eee18b_0 stack-data=0.6.3=pypi_0 tbb=2021.8.0=hdb19cb5_0 tblib=1.7.0=pyhd3eb1b0_0 -tenacity=8.2.3=py39h06a4308_0 +tenacity=9.0.0=py39h06a4308_0 thermo=0.2.25=pypi_0 thermosteam=0.34.0=pypi_0 tk=8.6.14=h39e8969_0 diff --git a/py3-opgee-linux.yml b/py3-opgee-linux.yml index 7050ab6d..e22cdae1 100644 --- a/py3-opgee-linux.yml +++ b/py3-opgee-linux.yml @@ -5,7 +5,6 @@ channels: - defaults dependencies: - colour - - cython - dash - dask - dask-jobqueue From b93aa70e72afd5701170f9a6f0ed36f6df94a3aa Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Wed, 30 Oct 2024 17:35:32 -0600 Subject: [PATCH 03/20] update requirements and env export, Mixture -> IdealMixture from thermosteam --- opgee-linux64.pkg_list.txt | 4 ++-- opgee/thermodynamics.py | 4 ++-- requirements.txt | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/opgee-linux64.pkg_list.txt b/opgee-linux64.pkg_list.txt index cd1c29f9..b0c810af 100644 --- a/opgee-linux64.pkg_list.txt +++ b/opgee-linux64.pkg_list.txt @@ -49,7 +49,7 @@ cycler=0.12.1=pypi_0 cython=3.0.11=py39h5eee18b_0 cytoolz=0.12.2=py39h5eee18b_0 dash=2.14.2=py39h06a4308_0 -dash-cytoscape=0.3.0=pypi_0 +dash-cytoscape=1.0.2=pypi_0 dask=2024.5.0=py39h06a4308_0 dask-core=2024.5.0=py39h06a4308_0 dask-expr=1.1.0=py39h06a4308_0 @@ -238,7 +238,7 @@ tbb=2021.8.0=hdb19cb5_0 tblib=1.7.0=pyhd3eb1b0_0 tenacity=9.0.0=py39h06a4308_0 thermo=0.2.25=pypi_0 -thermosteam=0.34.0=pypi_0 +thermosteam=0.45.0=pypi_0 tk=8.6.14=h39e8969_0 tomli=2.0.1=py39h06a4308_0 toolz=0.12.0=py39h06a4308_0 diff --git a/opgee/thermodynamics.py b/opgee/thermodynamics.py index 7f26aa02..0234764c 100644 --- a/opgee/thermodynamics.py +++ b/opgee/thermodynamics.py @@ -12,7 +12,7 @@ import numpy as np import pint from pyXSteam.XSteam import XSteam -from thermosteam import Chemical, Mixture +from thermosteam import Chemical, IdealMixture from . import ureg from .core import OpgeeObject, STP, TemperaturePressure @@ -239,7 +239,7 @@ def __init__(self, field, composition): self.field = field self.components = [name for name, fraction in self.composition] self.mol_fraction = mol_fraction = [fraction for name, fraction in self.composition] - self.mixture = mixture = Mixture.from_chemicals(self.components) + self.mixture = mixture = IdealMixture.from_chemicals(self.components) self.mol_weight = ureg.Quantity(mixture.MW(mol_fraction), "g/mol") def density(self): diff --git a/requirements.txt b/requirements.txt index d6d5697f..d14ebf6f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ # This file was generated by the script update-reqs.py. Manual edits may be lost. chemicals==1.1.4 dash==2.14.2 -dash-cytoscape==0.3.0 +dash-cytoscape==1.0.2 dask==2024.5.0 dask-jobqueue==0.8.2 fluids==1.0.24 @@ -24,4 +24,4 @@ sphinx==7.3.7 sphinx-argparse==0.4.0 sphinx_rtd_theme==2.0.0 thermo==0.2.25 -thermosteam==0.34.0 +thermosteam==0.45.0 From e1b1242f4bfc2ba6d5e51318b5fab952ec97d2b2 Mon Sep 17 00:00:00 2001 From: Richard Plevin Date: Thu, 31 Oct 2024 15:56:34 -0700 Subject: [PATCH 04/20] Update to python 3.11 and latest consistent set of packages --- Makefile | 7 ++++++- py3-opgee-macos.yml | 9 +++++---- requirements.txt | 12 ++++++------ update-reqs.py | 17 ++++++++++++----- 4 files changed, 29 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index 8269a0d0..50f380fe 100644 --- a/Makefile +++ b/Makefile @@ -92,7 +92,12 @@ create-opgee: $(YML_FILE) install-opgee: bash -l -c 'conda activate opgee && pip install -e .' -rebuild-opgee: remove-opgee create-opgee install-opgee +rebuild-opgee: remove-opgee create-opgee travis-reqs install-opgee + +# Generate a detailed package list to cache for validation of +# environment on CI platform (currently github actions) +linux-pkg-list: + conda list --export > opgee-linux64.pkg_list.txt NUITKA_EXE = opgee.exe NUITKA_OUTDIR = /tmp/opgee-nuitka diff --git a/py3-opgee-macos.yml b/py3-opgee-macos.yml index 95692954..236f250b 100644 --- a/py3-opgee-macos.yml +++ b/py3-opgee-macos.yml @@ -20,7 +20,7 @@ dependencies: - pip - pydot - pytest - - python>=3.9.0,<3.10.0 + - python>=3.11.0,<3.12.0 - semver - setuptools - sphinx @@ -32,6 +32,7 @@ dependencies: - dash-cytoscape - pyXSteam - thermosteam - - fluids==1.0.24 - - chemicals==1.1.4 - - thermo==0.2.25 + - fluids + - chemicals + - thermo + diff --git a/requirements.txt b/requirements.txt index d14ebf6f..89e0d702 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,10 @@ # This file was generated by the script update-reqs.py. Manual edits may be lost. -chemicals==1.1.4 +chemicals==1.2.0 dash==2.14.2 dash-cytoscape==1.0.2 -dask==2024.5.0 +dask==2024.8.2 dask-jobqueue==0.8.2 -fluids==1.0.24 +fluids==1.0.26 future==0.18.3 lxml==5.2.1 matplotlib==3.9.2 @@ -17,11 +17,11 @@ pydot==1.4.2 pytest==7.4.4 python-dateutil==2.9.0post0 pyxsteam==0.4.9 -scipy==1.13.1 +scipy==1.14.1 semver==3.0.2 setuptools==75.1.0 sphinx==7.3.7 -sphinx-argparse==0.4.0 +sphinx-argparse==0.5.2 sphinx_rtd_theme==2.0.0 -thermo==0.2.25 +thermo==0.3.0 thermosteam==0.45.0 diff --git a/update-reqs.py b/update-reqs.py index fbf6982f..61f60703 100755 --- a/update-reqs.py +++ b/update-reqs.py @@ -8,6 +8,8 @@ REPO_DIR = os.path.dirname(__file__) +Verbose = False + def main(): reqs_in = os.path.join(REPO_DIR, "requirements.in") reqs_out = os.path.join(REPO_DIR, "requirements.txt") @@ -16,13 +18,15 @@ def main(): pkgs = [line.strip() for line in f.readlines() if not line.startswith('#')] expr = '(' + '|'.join(pkgs) + ')' - cmd = f"conda list -f '{expr}' | egrep -v '^#'" - # | egrep -i '{expr}' + cmd = f"conda list -n opgee | egrep -v '^#' | egrep '^{expr}\s+'" + + if Verbose: + print(cmd) - # print(cmd) proc = subprocess.run(cmd, shell=True, capture_output=True, text=True) - # print(f"Lines:\n{proc.stdout}") + if Verbose: + print(f"Lines:\n{proc.stdout}") lines = proc.stdout.split('\n') with open(reqs_out, 'w') as f: @@ -30,7 +34,10 @@ def main(): for line in lines: if not line: continue - # print(f"Line is '{line}'") + + if Verbose: + print(f"Line is '{line}'") + name, version, _, _ = re.split(r'\s+', line) f.write(f"{name}=={version}\n") From 573666b48c3854526db72e84e52a06cbdeb97f4a Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Fri, 1 Nov 2024 10:51:06 -0600 Subject: [PATCH 05/20] combine linux/mac into single config, update pkg list --- Makefile | 4 +- opgee-linux64.pkg_list.txt | 180 ++++++++++------------ py3-opgee-linux.yml | 38 ----- py3-opgee-macos.yml => py3-opgee-unix.yml | 6 +- 4 files changed, 90 insertions(+), 138 deletions(-) delete mode 100644 py3-opgee-linux.yml rename py3-opgee-macos.yml => py3-opgee-unix.yml (100%) diff --git a/Makefile b/Makefile index 50f380fe..00262e0f 100644 --- a/Makefile +++ b/Makefile @@ -67,9 +67,9 @@ travis-reqs $(TRAVIS_REQS): requirements.in # UNAME=$(strip $(shell uname)) ifeq ($(UNAME), Darwin) - YML_FILE=py3-opgee-macos.yml + YML_FILE=py3-opgee-unix.yml else ifeq ($(UNAME), Linux) - YML_FILE=py3-opgee-linux.yml + YML_FILE=py3-opgee-unix.yml else YML_FILE=py3-opgee-win10.yml endif diff --git a/opgee-linux64.pkg_list.txt b/opgee-linux64.pkg_list.txt index b0c810af..575a1837 100644 --- a/opgee-linux64.pkg_list.txt +++ b/opgee-linux64.pkg_list.txt @@ -3,8 +3,8 @@ # platform: linux-64 _libgcc_mutex=0.1=main _openmp_mutex=5.1=1_gnu -alabaster=0.7.16=py39h06a4308_0 -ansi2html=1.9.1=py39h06a4308_0 +alabaster=0.7.16=py311h06a4308_0 +ansi2html=1.9.1=py311h06a4308_0 ansicolors=1.1.8=pypi_0 appdirs=1.4.4=pyhd3eb1b0_0 arrow-cpp=16.1.0=hc1eb8f0_0 @@ -23,50 +23,47 @@ aws-c-sdkutils=0.1.6=h5eee18b_0 aws-checksums=0.1.13=h5eee18b_0 aws-crt-cpp=0.18.16=h6a678d5_0 aws-sdk-cpp=1.10.55=h721c034_0 -babel=2.11.0=py39h06a4308_0 +babel=2.11.0=py311h06a4308_0 blas=1.0=openblas -blinker=1.6.2=py39h06a4308_0 -bokeh=3.4.3=py39h2f386ee_0 +blinker=1.6.2=py311h06a4308_0 +bokeh=3.6.0=py311h06a4308_0 boost-cpp=1.82.0=hdb19cb5_2 -bottleneck=1.3.7=py39ha9d4c09_0 -brotli-python=1.0.9=py39h6a678d5_8 +bottleneck=1.3.7=py311hf4808d0_0 +brotli-python=1.0.9=py311h6a678d5_8 bzip2=1.0.8=h5eee18b_6 c-ares=1.19.1=h5eee18b_0 ca-certificates=2024.9.24=h06a4308_0 cairo=1.16.0=hb05425b_5 -certifi=2024.8.30=py39h06a4308_0 -cffi=1.17.1=py39h1fdaa30_0 +certifi=2024.8.30=py311h06a4308_0 charset-normalizer=3.3.2=pyhd3eb1b0_0 -chemicals=1.1.4=pypi_0 -click=8.1.7=py39h06a4308_0 -cloudpickle=3.0.0=py39h06a4308_0 +chemicals=1.2.0=pypi_0 +click=8.1.7=py311h06a4308_0 +cloudpickle=3.0.0=py311h06a4308_0 colorama=0.4.6=pypi_0 colorpalette=0.3.3=pypi_0 -colour=0.1.5=py39h06a4308_0 +colour=0.1.5=py311h06a4308_0 commonmark=0.9.1=pyhd3eb1b0_0 -contourpy=1.2.0=py39hdb19cb5_0 +contourpy=1.2.0=py311hdb19cb5_0 cycler=0.12.1=pypi_0 -cython=3.0.11=py39h5eee18b_0 -cytoolz=0.12.2=py39h5eee18b_0 -dash=2.14.2=py39h06a4308_0 +cytoolz=0.12.2=py311h5eee18b_0 +dash=2.14.2=py311h06a4308_0 dash-cytoscape=1.0.2=pypi_0 -dask=2024.5.0=py39h06a4308_0 -dask-core=2024.5.0=py39h06a4308_0 -dask-expr=1.1.0=py39h06a4308_0 -dask-jobqueue=0.8.2=py39h06a4308_0 +dask=2024.8.2=py311h06a4308_0 +dask-core=2024.8.2=py311h06a4308_0 +dask-expr=1.1.13=py311h06a4308_0 +dask-jobqueue=0.8.2=py311h06a4308_0 decorator=5.1.1=pypi_0 -distributed=2024.5.0=py39h06a4308_0 -docutils=0.18.1=py39h06a4308_3 +distributed=2024.8.2=py311h06a4308_0 +docutils=0.20.1=py311h38be061_3 et-xmlfile=2.0.0=pypi_0 -exceptiongroup=1.2.0=py39h06a4308_0 executing=2.1.0=pypi_0 expat=2.6.3=h6a678d5_0 -flask=3.0.3=py39h06a4308_0 -flask-compress=1.13=py39h06a4308_0 +flask=3.0.3=py311h06a4308_0 +flask-compress=1.13=py311h06a4308_0 flexcache=0.3=pyhd8ed1ab_0 flexparser=0.3.1=pyhd8ed1ab_0 flexsolve=0.5.7=pypi_0 -fluids=1.0.24=pypi_0 +fluids=1.0.26=pypi_0 font-ttf-dejavu-sans-mono=2.37=hd3eb1b0_0 font-ttf-inconsolata=2.001=hcb22688_0 font-ttf-source-code-pro=2.030=hd3eb1b0_0 @@ -78,15 +75,15 @@ fonttools=4.54.1=pypi_0 free-properties=0.3.6=pypi_0 freetype=2.12.1=h4a9f257_0 fribidi=1.0.10=h7b6447c_0 -fsspec=2024.6.1=py39h06a4308_0 -future=0.18.3=py39h06a4308_0 +fsspec=2024.6.1=py311h06a4308_0 +future=0.18.3=py311h06a4308_0 gdk-pixbuf=2.42.10=h5eee18b_1 gflags=2.2.2=h6a678d5_1 giflib=5.2.2=h5eee18b_0 glib=2.78.4=h6a678d5_0 glib-tools=2.78.4=h6a678d5_0 glog=0.5.0=h6a678d5_1 -gobject-introspection=1.78.1=py39h42194e9_1 +gobject-introspection=1.78.1=py311h42194e9_1 graphite2=1.3.14=h295c915_1 graphviz=2.50.0=h1b29801_1 gtk2=2.24.33=h73c1081_2 @@ -94,15 +91,14 @@ gts=0.7.6=hb67d8dd_3 harfbuzz=4.3.0=hf52aaf7_2 heapdict=1.0.1=pyhd3eb1b0_0 icu=73.1=h6a678d5_0 -idna=3.7=py39h06a4308_0 -imagesize=1.4.1=py39h06a4308_0 -importlib-metadata=7.0.1=py39h06a4308_0 -importlib-resources=6.4.5=pypi_0 +idna=3.7=py311h06a4308_0 +imagesize=1.4.1=py311h06a4308_0 +importlib-metadata=7.0.1=py311h06a4308_0 iniconfig=1.1.1=pyhd3eb1b0_0 -ipython=8.18.1=pypi_0 -itsdangerous=2.2.0=py39h06a4308_0 +ipython=8.29.0=pypi_0 +itsdangerous=2.2.0=py311h06a4308_0 jedi=0.19.1=pypi_0 -jinja2=3.1.4=py39h06a4308_0 +jinja2=3.1.4=py311h06a4308_0 jpeg=9e=h5eee18b_3 kiwisolver=1.4.7=pypi_0 krb5=1.20.1=h143b758_1 @@ -133,7 +129,6 @@ libnghttp2=1.57.0=h2d74bed_0 libopenblas=0.3.21=h043d6bf_0 libpng=1.6.39=h5eee18b_0 libprotobuf=4.25.3=he621ea3_0 -libpython-static=3.9.20=h6a678d5_1 librsvg=2.54.4=haac4a5d_4 libssh2=1.11.0=h251f7ec_0 libstdcxx-ng=11.2.0=h1234567_1 @@ -147,117 +142,112 @@ libxcb=1.15=h7f8727e_0 libxml2=2.13.1=hfdd30dd_2 libxslt=1.1.41=h097e994_0 llvm-openmp=14.0.6=h9e868ea_0 -llvmlite=0.43.0=py39h6a678d5_0 -locket=1.0.0=py39h06a4308_0 -lxml=5.2.1=py39h57af460_1 -lz4=4.3.2=py39h5eee18b_0 +llvmlite=0.43.0=py311h6a678d5_0 +locket=1.0.0=py311h06a4308_0 +lxml=5.2.1=py311h57af460_1 +lz4=4.3.2=py311h5eee18b_0 lz4-c=1.9.4=h6a678d5_1 -markupsafe=2.1.3=py39h5eee18b_0 +markupsafe=2.1.3=py311h5eee18b_0 matplotlib=3.9.2=pypi_0 matplotlib-inline=0.1.7=pypi_0 -msgpack-python=1.0.3=py39hd09550d_0 +msgpack-python=1.0.3=py311hdb19cb5_0 ncurses=6.4=h6a678d5_0 -nest-asyncio=1.6.0=py39h06a4308_0 -networkx=3.2.1=py39h06a4308_0 +nest-asyncio=1.6.0=py311h06a4308_0 +networkx=3.2.1=py311h06a4308_0 ninja=1.10.2=h06a4308_5 ninja-base=1.10.2=hd09550d_5 nspr=4.35=h6a678d5_0 nss=3.89.1=h6a678d5_0 -nuitka=1.5.8=py39h5eee18b_0 -numba=0.60.0=py39h6a678d5_0 -numexpr=2.10.1=py39hd28fd6d_0 -numpy=1.26.4=py39heeff2f4_0 -numpy-base=1.26.4=py39h8a23956_0 +numba=0.60.0=py311ha02d727_0 +numexpr=2.10.1=py311hd28fd6d_0 +numpy=1.26.4=py311h24aa872_0 +numpy-base=1.26.4=py311hbfb1bba_0 openjpeg=2.5.2=he7f1fd0_0 openpyxl=3.1.5=pypi_0 openssl=3.0.15=h5eee18b_0 opgee=4.0a0=dev_0 orc=2.0.1=h2d29ad5_0 -ordered-set=4.1.0=py39h06a4308_0 -packaging=24.1=py39h06a4308_0 -pandas=2.2.2=py39h6a678d5_0 +packaging=24.1=py311h06a4308_0 +pandas=2.2.2=py311ha02d727_0 pango=1.50.7=h05da053_0 parso=0.8.4=pypi_0 -partd=1.4.1=py39h06a4308_0 +partd=1.4.1=py311h06a4308_0 pcre2=10.42=hebb0a14_1 pexpect=4.9.0=pypi_0 -pillow=9.4.0=py39h6a678d5_0 +pillow=9.4.0=py311h6a678d5_0 pint=0.24.3=pyhd8ed1ab_0 pint-pandas=0.6.2=pyhd8ed1ab_0 -pip=24.2=py39h06a4308_0 +pip=24.2=py311h06a4308_0 pixman=0.40.0=h7f8727e_1 -plotly=5.24.1=py39h2f386ee_0 -pluggy=1.0.0=py39h06a4308_1 +plotly=5.24.1=py311h92b7b1e_0 +pluggy=1.0.0=py311h06a4308_1 poppler=24.09.0=h55ad6a6_0 poppler-data=0.4.11=h06a4308_1 prompt-toolkit=3.0.48=pypi_0 -psutil=5.9.0=py39h5eee18b_0 +psutil=5.9.0=py311h5eee18b_0 ptyprocess=0.7.0=pypi_0 pure-eval=0.2.3=pypi_0 -pyarrow=16.1.0=py39h1128e8f_0 -pycparser=2.21=pyhd3eb1b0_0 -pydot=1.4.2=py39h06a4308_0 +pyarrow=16.1.0=py311ha02d727_0 +pydot=1.4.2=py311h06a4308_0 pyglet=2.0.18=pypi_0 -pygments=2.15.1=py39h06a4308_1 +pygments=2.15.1=py311h06a4308_1 pyparsing=2.4.7=pyhd3eb1b0_0 -pysocks=1.7.1=py39h06a4308_0 -pytest=7.4.4=py39h06a4308_0 -python=3.9.20=he870216_1 -python-dateutil=2.9.0post0=py39h06a4308_2 -python-graphviz=0.20.1=py39h06a4308_0 -python-lmdb=1.4.1=py39h6a678d5_0 +pysocks=1.7.1=py311h06a4308_0 +pytest=7.4.4=py311h06a4308_0 +python=3.11.10=he870216_0 +python-dateutil=2.9.0post0=py311h06a4308_2 +python-lmdb=1.4.1=py311h6a678d5_0 python-tzdata=2023.3=pyhd3eb1b0_0 -pytz=2024.1=py39h06a4308_0 +python_abi=3.11=2_cp311 +pytz=2024.1=py311h06a4308_0 pyxsteam=0.4.9=pypi_0 -pyyaml=6.0.2=py39h5eee18b_0 +pyyaml=6.0.2=py311h5eee18b_0 re2=2022.04.01=h295c915_0 readline=8.2=h5eee18b_0 -requests=2.32.3=py39h06a4308_0 +requests=2.32.3=py311h06a4308_0 retrying=1.3.3=pyhd3eb1b0_2 s2n=1.3.27=hdbd6064_0 -scipy=1.13.1=pypi_0 -semver=3.0.2=py39h06a4308_0 -setuptools=75.1.0=py39h06a4308_0 +scipy=1.14.1=pypi_0 +semver=3.0.2=py311h06a4308_0 +setuptools=75.1.0=py311h06a4308_0 six=1.16.0=pyhd3eb1b0_1 snappy=1.2.1=h6a678d5_0 snowballstemmer=2.2.0=pyhd3eb1b0_0 sortedcontainers=2.4.0=pyhd3eb1b0_0 -sphinx=7.3.7=py39h5eee18b_0 -sphinx-argparse=0.4.0=pyhd8ed1ab_0 -sphinx_rtd_theme=2.0.0=py39h06a4308_0 +sphinx=7.3.7=py311h5eee18b_0 +sphinx-argparse=0.5.2=pyhd8ed1ab_0 +sphinx_rtd_theme=2.0.0=py311h06a4308_0 sphinxcontrib-applehelp=1.0.2=pyhd3eb1b0_0 sphinxcontrib-devhelp=1.0.2=pyhd3eb1b0_0 sphinxcontrib-htmlhelp=2.0.0=pyhd3eb1b0_0 -sphinxcontrib-jquery=4.1=py39h06a4308_0 +sphinxcontrib-jquery=4.1=py311h06a4308_0 sphinxcontrib-jsmath=1.0.1=pyhd3eb1b0_0 sphinxcontrib-qthelp=1.0.3=pyhd3eb1b0_0 -sphinxcontrib-serializinghtml=1.1.10=py39h06a4308_0 +sphinxcontrib-serializinghtml=1.1.10=py311h06a4308_0 sqlite=3.45.3=h5eee18b_0 stack-data=0.6.3=pypi_0 tbb=2021.8.0=hdb19cb5_0 tblib=1.7.0=pyhd3eb1b0_0 -tenacity=9.0.0=py39h06a4308_0 -thermo=0.2.25=pypi_0 +tenacity=9.0.0=py311h06a4308_0 +thermo=0.3.0=pypi_0 thermosteam=0.45.0=pypi_0 tk=8.6.14=h39e8969_0 -tomli=2.0.1=py39h06a4308_0 -toolz=0.12.0=py39h06a4308_0 -tornado=6.4.1=py39h5eee18b_0 +toolz=0.12.0=py311h06a4308_0 +tornado=6.4.1=py311h5eee18b_0 traitlets=5.14.3=pypi_0 -typing-extensions=4.11.0=py39h06a4308_0 -typing_extensions=4.11.0=py39h06a4308_0 +typing-extensions=4.11.0=py311h06a4308_0 +typing_extensions=4.11.0=py311h06a4308_0 tzdata=2024b=h04d1e81_0 -urllib3=2.2.3=py39h06a4308_0 +urllib3=2.2.3=py311h06a4308_0 utf8proc=2.6.1=h5eee18b_1 wcwidth=0.2.13=pypi_0 -werkzeug=3.0.3=py39h06a4308_0 -wheel=0.44.0=py39h06a4308_0 +werkzeug=3.0.3=py311h06a4308_0 +wheel=0.44.0=py311h06a4308_0 xlrd=2.0.1=pypi_0 -xyzservices=2022.9.0=py39h06a4308_1 +xyzservices=2022.9.0=py311h06a4308_1 xz=5.4.6=h5eee18b_1 yaml=0.2.5=h7b6447c_0 -zict=3.0.0=py39h06a4308_0 -zipp=3.20.2=py39h06a4308_0 +zict=3.0.0=py311h06a4308_0 +zipp=3.20.2=py311h06a4308_0 zlib=1.2.13=h5eee18b_1 -zstandard=0.23.0=py39h2c38b39_0 zstd=1.5.6=hc292b87_0 diff --git a/py3-opgee-linux.yml b/py3-opgee-linux.yml deleted file mode 100644 index e22cdae1..00000000 --- a/py3-opgee-linux.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: opgee -channels: - - anaconda - - conda-forge - - defaults -dependencies: - - colour - - dash - - dask - - dask-jobqueue - - graphviz - - jinja2 - - llvm-openmp - - lxml - - networkx - - numba - - numpy - - pandas - - pint - - pint-pandas - - pip - - pydot - - pytest - - python-graphviz - - python>=3.9.0,<3.10.0 - - semver - - setuptools - - sphinx - - sphinx-argparse - - sphinx_rtd_theme - - sphinxcontrib-serializinghtml - - pip: - - dash-cytoscape - - pyXSteam - - thermosteam - - fluids==1.0.24 - - chemicals==1.1.4 - - thermo==0.2.25 diff --git a/py3-opgee-macos.yml b/py3-opgee-unix.yml similarity index 100% rename from py3-opgee-macos.yml rename to py3-opgee-unix.yml index 236f250b..0fd0578d 100644 --- a/py3-opgee-macos.yml +++ b/py3-opgee-unix.yml @@ -29,10 +29,10 @@ dependencies: - sphinxcontrib-serializinghtml - pip: # - nuitka # experimental; moved here because conda version is very outdated + - chemicals - dash-cytoscape - - pyXSteam - - thermosteam - fluids - - chemicals + - pyXSteam - thermo + - thermosteam From 3103a453e81ab8bd9500ebf1bb64379f4d19294a Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Fri, 1 Nov 2024 21:38:37 -0600 Subject: [PATCH 06/20] add matrix to runner, all conda envs are equivalent, tweak names, update reqs --- .github/workflows/opgee-test.yml | 19 +- Makefile | 4 +- opgee-linux64.pkg_list.txt | 253 --------------------------- opgee.pkg_list.txt | 289 +++++++++++++++++++++++++++++++ py3-opgee-unix.yml | 13 +- py3-opgee-win10.yml | 1 - requirements.txt | 31 ++-- update-reqs.py | 2 +- 8 files changed, 325 insertions(+), 287 deletions(-) delete mode 100644 opgee-linux64.pkg_list.txt create mode 100644 opgee.pkg_list.txt diff --git a/.github/workflows/opgee-test.yml b/.github/workflows/opgee-test.yml index 933202ee..67107c6e 100644 --- a/.github/workflows/opgee-test.yml +++ b/.github/workflows/opgee-test.yml @@ -7,18 +7,26 @@ on: - dev jobs: - test-linux: - runs-on: ubuntu-latest + test: strategy: + matrix: + os: [ubuntu-latest, macos-latest] + arch: [x64, arm64] + exclude: + - os: ubuntu-latest + arch: arm64 + - os: macos-latest + arch: x64 max-parallel: 5 + runs-on: ${{ matrix.os }} defaults: run: shell: bash -el {0} env: OPGEE_HOME: ${{ github.workspace }}/tests/files CI: 'true' - opgee_pkg_list: 'opgee-linux64.pkg_list.txt' - opgee_linux_yml: 'py3-opgee-linux.yml' + opgee_pkg_list: 'opgee.pkg_list.txt' + opgee_env_yml: 'py3-opgee-unix.yml' steps: - uses: actions/checkout@v4 - name: Cache pip dependencies @@ -48,9 +56,8 @@ jobs: ${{ runner.os }}-conda-${{ runner.arch }}-${{ hashFiles(env.opgee_pkg_list) }}-${{ env.CACHE_NUMBER }} - name: Update Conda env and pip dependencies run: | - conda env update -n opgee -f $opgee_linux_yml + conda env update -n opgee -f $opgee_env_yml pip install -e . - python -m pip install -e . pip install pytest-cov codecov coveralls PyYAML if: steps.pip-cache.outputs.cache-hit != 'true' || steps.opgee-env-cache.cache-hit != 'true' - name: Run unit tests with coverage diff --git a/Makefile b/Makefile index 00262e0f..e5658ec1 100644 --- a/Makefile +++ b/Makefile @@ -96,8 +96,8 @@ rebuild-opgee: remove-opgee create-opgee travis-reqs install-opgee # Generate a detailed package list to cache for validation of # environment on CI platform (currently github actions) -linux-pkg-list: - conda list --export > opgee-linux64.pkg_list.txt +env-pkg-list: + conda list --export > opgee.pkg_list.txt NUITKA_EXE = opgee.exe NUITKA_OUTDIR = /tmp/opgee-nuitka diff --git a/opgee-linux64.pkg_list.txt b/opgee-linux64.pkg_list.txt deleted file mode 100644 index 575a1837..00000000 --- a/opgee-linux64.pkg_list.txt +++ /dev/null @@ -1,253 +0,0 @@ -# This file may be used to create an environment using: -# $ conda create --name --file -# platform: linux-64 -_libgcc_mutex=0.1=main -_openmp_mutex=5.1=1_gnu -alabaster=0.7.16=py311h06a4308_0 -ansi2html=1.9.1=py311h06a4308_0 -ansicolors=1.1.8=pypi_0 -appdirs=1.4.4=pyhd3eb1b0_0 -arrow-cpp=16.1.0=hc1eb8f0_0 -asttokens=2.4.1=pypi_0 -atk-1.0=2.36.0=ha1a6a79_0 -aws-c-auth=0.6.19=h5eee18b_0 -aws-c-cal=0.5.20=hdbd6064_0 -aws-c-common=0.8.5=h5eee18b_0 -aws-c-compression=0.2.16=h5eee18b_0 -aws-c-event-stream=0.2.15=h6a678d5_0 -aws-c-http=0.6.25=h5eee18b_0 -aws-c-io=0.13.10=h5eee18b_0 -aws-c-mqtt=0.7.13=h5eee18b_0 -aws-c-s3=0.1.51=hdbd6064_0 -aws-c-sdkutils=0.1.6=h5eee18b_0 -aws-checksums=0.1.13=h5eee18b_0 -aws-crt-cpp=0.18.16=h6a678d5_0 -aws-sdk-cpp=1.10.55=h721c034_0 -babel=2.11.0=py311h06a4308_0 -blas=1.0=openblas -blinker=1.6.2=py311h06a4308_0 -bokeh=3.6.0=py311h06a4308_0 -boost-cpp=1.82.0=hdb19cb5_2 -bottleneck=1.3.7=py311hf4808d0_0 -brotli-python=1.0.9=py311h6a678d5_8 -bzip2=1.0.8=h5eee18b_6 -c-ares=1.19.1=h5eee18b_0 -ca-certificates=2024.9.24=h06a4308_0 -cairo=1.16.0=hb05425b_5 -certifi=2024.8.30=py311h06a4308_0 -charset-normalizer=3.3.2=pyhd3eb1b0_0 -chemicals=1.2.0=pypi_0 -click=8.1.7=py311h06a4308_0 -cloudpickle=3.0.0=py311h06a4308_0 -colorama=0.4.6=pypi_0 -colorpalette=0.3.3=pypi_0 -colour=0.1.5=py311h06a4308_0 -commonmark=0.9.1=pyhd3eb1b0_0 -contourpy=1.2.0=py311hdb19cb5_0 -cycler=0.12.1=pypi_0 -cytoolz=0.12.2=py311h5eee18b_0 -dash=2.14.2=py311h06a4308_0 -dash-cytoscape=1.0.2=pypi_0 -dask=2024.8.2=py311h06a4308_0 -dask-core=2024.8.2=py311h06a4308_0 -dask-expr=1.1.13=py311h06a4308_0 -dask-jobqueue=0.8.2=py311h06a4308_0 -decorator=5.1.1=pypi_0 -distributed=2024.8.2=py311h06a4308_0 -docutils=0.20.1=py311h38be061_3 -et-xmlfile=2.0.0=pypi_0 -executing=2.1.0=pypi_0 -expat=2.6.3=h6a678d5_0 -flask=3.0.3=py311h06a4308_0 -flask-compress=1.13=py311h06a4308_0 -flexcache=0.3=pyhd8ed1ab_0 -flexparser=0.3.1=pyhd8ed1ab_0 -flexsolve=0.5.7=pypi_0 -fluids=1.0.26=pypi_0 -font-ttf-dejavu-sans-mono=2.37=hd3eb1b0_0 -font-ttf-inconsolata=2.001=hcb22688_0 -font-ttf-source-code-pro=2.030=hd3eb1b0_0 -font-ttf-ubuntu=0.83=h8b1ccd4_0 -fontconfig=2.14.1=h55d465d_3 -fonts-anaconda=1=h8fa9717_0 -fonts-conda-ecosystem=1=hd3eb1b0_0 -fonttools=4.54.1=pypi_0 -free-properties=0.3.6=pypi_0 -freetype=2.12.1=h4a9f257_0 -fribidi=1.0.10=h7b6447c_0 -fsspec=2024.6.1=py311h06a4308_0 -future=0.18.3=py311h06a4308_0 -gdk-pixbuf=2.42.10=h5eee18b_1 -gflags=2.2.2=h6a678d5_1 -giflib=5.2.2=h5eee18b_0 -glib=2.78.4=h6a678d5_0 -glib-tools=2.78.4=h6a678d5_0 -glog=0.5.0=h6a678d5_1 -gobject-introspection=1.78.1=py311h42194e9_1 -graphite2=1.3.14=h295c915_1 -graphviz=2.50.0=h1b29801_1 -gtk2=2.24.33=h73c1081_2 -gts=0.7.6=hb67d8dd_3 -harfbuzz=4.3.0=hf52aaf7_2 -heapdict=1.0.1=pyhd3eb1b0_0 -icu=73.1=h6a678d5_0 -idna=3.7=py311h06a4308_0 -imagesize=1.4.1=py311h06a4308_0 -importlib-metadata=7.0.1=py311h06a4308_0 -iniconfig=1.1.1=pyhd3eb1b0_0 -ipython=8.29.0=pypi_0 -itsdangerous=2.2.0=py311h06a4308_0 -jedi=0.19.1=pypi_0 -jinja2=3.1.4=py311h06a4308_0 -jpeg=9e=h5eee18b_3 -kiwisolver=1.4.7=pypi_0 -krb5=1.20.1=h143b758_1 -lcms2=2.12=h3be6417_0 -ld_impl_linux-64=2.40=h12ee557_0 -lerc=3.0=h295c915_0 -libabseil=20240116.2=cxx17_h6a678d5_0 -libboost=1.82.0=h109eef0_2 -libbrotlicommon=1.0.9=h5eee18b_8 -libbrotlidec=1.0.9=h5eee18b_8 -libbrotlienc=1.0.9=h5eee18b_8 -libcurl=8.9.1=h251f7ec_0 -libdeflate=1.17=h5eee18b_1 -libedit=3.1.20230828=h5eee18b_0 -libev=4.33=h7f8727e_1 -libevent=2.1.12=hdbd6064_1 -libffi=3.4.4=h6a678d5_1 -libgcc-ng=11.2.0=h1234567_1 -libgd=2.3.3=h6a678d5_3 -libgfortran-ng=11.2.0=h00389a5_1 -libgfortran5=11.2.0=h1234567_1 -libglib=2.78.4=hdc74915_0 -libgomp=11.2.0=h1234567_1 -libgrpc=1.62.2=h2d74bed_0 -libiconv=1.16=h5eee18b_3 -libllvm14=14.0.6=hecde1de_4 -libnghttp2=1.57.0=h2d74bed_0 -libopenblas=0.3.21=h043d6bf_0 -libpng=1.6.39=h5eee18b_0 -libprotobuf=4.25.3=he621ea3_0 -librsvg=2.54.4=haac4a5d_4 -libssh2=1.11.0=h251f7ec_0 -libstdcxx-ng=11.2.0=h1234567_1 -libthrift=0.15.0=h1795dd8_2 -libtiff=4.5.1=h6a678d5_0 -libtool=2.4.6=h6a678d5_1009 -libuuid=1.41.5=h5eee18b_0 -libwebp=1.2.4=h11a3e52_1 -libwebp-base=1.2.4=h5eee18b_1 -libxcb=1.15=h7f8727e_0 -libxml2=2.13.1=hfdd30dd_2 -libxslt=1.1.41=h097e994_0 -llvm-openmp=14.0.6=h9e868ea_0 -llvmlite=0.43.0=py311h6a678d5_0 -locket=1.0.0=py311h06a4308_0 -lxml=5.2.1=py311h57af460_1 -lz4=4.3.2=py311h5eee18b_0 -lz4-c=1.9.4=h6a678d5_1 -markupsafe=2.1.3=py311h5eee18b_0 -matplotlib=3.9.2=pypi_0 -matplotlib-inline=0.1.7=pypi_0 -msgpack-python=1.0.3=py311hdb19cb5_0 -ncurses=6.4=h6a678d5_0 -nest-asyncio=1.6.0=py311h06a4308_0 -networkx=3.2.1=py311h06a4308_0 -ninja=1.10.2=h06a4308_5 -ninja-base=1.10.2=hd09550d_5 -nspr=4.35=h6a678d5_0 -nss=3.89.1=h6a678d5_0 -numba=0.60.0=py311ha02d727_0 -numexpr=2.10.1=py311hd28fd6d_0 -numpy=1.26.4=py311h24aa872_0 -numpy-base=1.26.4=py311hbfb1bba_0 -openjpeg=2.5.2=he7f1fd0_0 -openpyxl=3.1.5=pypi_0 -openssl=3.0.15=h5eee18b_0 -opgee=4.0a0=dev_0 -orc=2.0.1=h2d29ad5_0 -packaging=24.1=py311h06a4308_0 -pandas=2.2.2=py311ha02d727_0 -pango=1.50.7=h05da053_0 -parso=0.8.4=pypi_0 -partd=1.4.1=py311h06a4308_0 -pcre2=10.42=hebb0a14_1 -pexpect=4.9.0=pypi_0 -pillow=9.4.0=py311h6a678d5_0 -pint=0.24.3=pyhd8ed1ab_0 -pint-pandas=0.6.2=pyhd8ed1ab_0 -pip=24.2=py311h06a4308_0 -pixman=0.40.0=h7f8727e_1 -plotly=5.24.1=py311h92b7b1e_0 -pluggy=1.0.0=py311h06a4308_1 -poppler=24.09.0=h55ad6a6_0 -poppler-data=0.4.11=h06a4308_1 -prompt-toolkit=3.0.48=pypi_0 -psutil=5.9.0=py311h5eee18b_0 -ptyprocess=0.7.0=pypi_0 -pure-eval=0.2.3=pypi_0 -pyarrow=16.1.0=py311ha02d727_0 -pydot=1.4.2=py311h06a4308_0 -pyglet=2.0.18=pypi_0 -pygments=2.15.1=py311h06a4308_1 -pyparsing=2.4.7=pyhd3eb1b0_0 -pysocks=1.7.1=py311h06a4308_0 -pytest=7.4.4=py311h06a4308_0 -python=3.11.10=he870216_0 -python-dateutil=2.9.0post0=py311h06a4308_2 -python-lmdb=1.4.1=py311h6a678d5_0 -python-tzdata=2023.3=pyhd3eb1b0_0 -python_abi=3.11=2_cp311 -pytz=2024.1=py311h06a4308_0 -pyxsteam=0.4.9=pypi_0 -pyyaml=6.0.2=py311h5eee18b_0 -re2=2022.04.01=h295c915_0 -readline=8.2=h5eee18b_0 -requests=2.32.3=py311h06a4308_0 -retrying=1.3.3=pyhd3eb1b0_2 -s2n=1.3.27=hdbd6064_0 -scipy=1.14.1=pypi_0 -semver=3.0.2=py311h06a4308_0 -setuptools=75.1.0=py311h06a4308_0 -six=1.16.0=pyhd3eb1b0_1 -snappy=1.2.1=h6a678d5_0 -snowballstemmer=2.2.0=pyhd3eb1b0_0 -sortedcontainers=2.4.0=pyhd3eb1b0_0 -sphinx=7.3.7=py311h5eee18b_0 -sphinx-argparse=0.5.2=pyhd8ed1ab_0 -sphinx_rtd_theme=2.0.0=py311h06a4308_0 -sphinxcontrib-applehelp=1.0.2=pyhd3eb1b0_0 -sphinxcontrib-devhelp=1.0.2=pyhd3eb1b0_0 -sphinxcontrib-htmlhelp=2.0.0=pyhd3eb1b0_0 -sphinxcontrib-jquery=4.1=py311h06a4308_0 -sphinxcontrib-jsmath=1.0.1=pyhd3eb1b0_0 -sphinxcontrib-qthelp=1.0.3=pyhd3eb1b0_0 -sphinxcontrib-serializinghtml=1.1.10=py311h06a4308_0 -sqlite=3.45.3=h5eee18b_0 -stack-data=0.6.3=pypi_0 -tbb=2021.8.0=hdb19cb5_0 -tblib=1.7.0=pyhd3eb1b0_0 -tenacity=9.0.0=py311h06a4308_0 -thermo=0.3.0=pypi_0 -thermosteam=0.45.0=pypi_0 -tk=8.6.14=h39e8969_0 -toolz=0.12.0=py311h06a4308_0 -tornado=6.4.1=py311h5eee18b_0 -traitlets=5.14.3=pypi_0 -typing-extensions=4.11.0=py311h06a4308_0 -typing_extensions=4.11.0=py311h06a4308_0 -tzdata=2024b=h04d1e81_0 -urllib3=2.2.3=py311h06a4308_0 -utf8proc=2.6.1=h5eee18b_1 -wcwidth=0.2.13=pypi_0 -werkzeug=3.0.3=py311h06a4308_0 -wheel=0.44.0=py311h06a4308_0 -xlrd=2.0.1=pypi_0 -xyzservices=2022.9.0=py311h06a4308_1 -xz=5.4.6=h5eee18b_1 -yaml=0.2.5=h7b6447c_0 -zict=3.0.0=py311h06a4308_0 -zipp=3.20.2=py311h06a4308_0 -zlib=1.2.13=h5eee18b_1 -zstd=1.5.6=hc292b87_0 diff --git a/opgee.pkg_list.txt b/opgee.pkg_list.txt new file mode 100644 index 00000000..fca28feb --- /dev/null +++ b/opgee.pkg_list.txt @@ -0,0 +1,289 @@ +# This file may be used to create an environment using: +# $ conda create --name --file +# platform: linux-64 +_libgcc_mutex=0.1=conda_forge +_openmp_mutex=4.5=2_gnu +alabaster=1.0.0=pyhd8ed1ab_0 +ansicolors=1.1.8=pypi_0 +appdirs=1.4.4=pyh9f0ad1d_0 +asttokens=2.4.1=pypi_0 +atk-1.0=2.38.0=h04ea711_2 +aws-c-auth=0.7.31=hcdce11a_5 +aws-c-cal=0.7.4=hd3f4568_4 +aws-c-common=0.9.31=hb9d3cd8_0 +aws-c-compression=0.2.19=hf20e7d7_4 +aws-c-event-stream=0.5.0=h72d8268_0 +aws-c-http=0.8.10=h6bb76cc_5 +aws-c-io=0.14.20=h389d861_2 +aws-c-mqtt=0.10.7=had056f2_5 +aws-c-s3=0.7.0=hc85afc5_0 +aws-c-sdkutils=0.1.19=hf20e7d7_6 +aws-checksums=0.1.20=hf20e7d7_3 +aws-crt-cpp=0.29.0=h07ed512_0 +aws-sdk-cpp=1.11.407=h9c41b47_6 +azure-core-cpp=1.14.0=h5cfcd09_0 +azure-identity-cpp=1.10.0=h113e628_0 +azure-storage-blobs-cpp=12.13.0=h3cf044e_1 +azure-storage-common-cpp=12.8.0=h736e048_1 +azure-storage-files-datalake-cpp=12.12.0=ha633028_1 +babel=2.14.0=pyhd8ed1ab_0 +blinker=1.8.2=pyhd8ed1ab_0 +bokeh=3.6.0=pyhd8ed1ab_0 +brotli=1.1.0=hb9d3cd8_2 +brotli-bin=1.1.0=hb9d3cd8_2 +brotli-python=1.1.0=py311hfdbb021_2 +bzip2=1.0.8=h4bc722e_7 +c-ares=1.34.2=heb4867d_0 +ca-certificates=2024.8.30=hbcca054_0 +cairo=1.18.0=hebfffa5_3 +certifi=2024.8.30=pyhd8ed1ab_0 +cffi=1.17.1=py311hf29c0ef_0 +charset-normalizer=3.4.0=pyhd8ed1ab_0 +chemicals=1.2.0=pyhd8ed1ab_0 +click=8.1.7=unix_pyh707e725_0 +cloudpickle=3.1.0=pyhd8ed1ab_1 +colorama=0.4.6=pyhd8ed1ab_0 +colorpalette=0.3.3=pypi_0 +commonmark=0.9.1=py_0 +contourpy=1.3.0=py311hd18a35c_2 +coolprop=6.6.0=py311hfdbb021_3 +cpython=3.11.10=py311hd8ed1ab_3 +cycler=0.12.1=pyhd8ed1ab_0 +cytoolz=1.0.0=py311h9ecbd09_1 +dash=2.18.1=pyhd8ed1ab_0 +dash-core-components=2.0.0=pypi_0 +dash-cytoscape=1.0.2=pypi_0 +dash-html-components=2.0.0=pypi_0 +dash-table=5.0.0=pypi_0 +dask=2024.10.0=pyhd8ed1ab_0 +dask-core=2024.10.0=pyhd8ed1ab_0 +dask-expr=1.1.16=pyhd8ed1ab_0 +dask-jobqueue=0.9.0=pyhd8ed1ab_0 +decorator=5.1.1=pypi_0 +distributed=2024.10.0=pyhd8ed1ab_0 +docutils=0.21.2=pyhd8ed1ab_0 +et-xmlfile=2.0.0=pypi_0 +exceptiongroup=1.2.2=pyhd8ed1ab_0 +executing=2.1.0=pypi_0 +flask=3.0.3=pyhd8ed1ab_0 +flexcache=0.3=pyhd8ed1ab_0 +flexparser=0.3.1=pyhd8ed1ab_0 +flexsolve=0.5.7=pypi_0 +fluids=1.0.26=pyhff2d567_0 +font-ttf-dejavu-sans-mono=2.37=hab24e00_0 +font-ttf-inconsolata=3.000=h77eed37_0 +font-ttf-source-code-pro=2.038=h77eed37_0 +font-ttf-ubuntu=0.83=h77eed37_3 +fontconfig=2.15.0=h7e30c49_1 +fonts-conda-ecosystem=1=0 +fonts-conda-forge=1=0 +fonttools=4.54.1=py311h2dc5d0c_1 +free-properties=0.3.6=pypi_0 +freetype=2.12.1=h267a509_2 +fribidi=1.0.10=h36c2ea0_0 +fsspec=2024.10.0=pyhff2d567_0 +future=1.0.0=pyhd8ed1ab_0 +fuzzywuzzy=0.18.0=pyhd8ed1ab_0 +gdk-pixbuf=2.42.12=hb9ae30d_0 +gflags=2.2.2=h5888daf_1005 +glog=0.7.1=hbabe93e_0 +gmp=6.3.0=hac33072_2 +gmpy2=2.1.5=py311h0f6cedb_2 +graphite2=1.3.13=h59595ed_1003 +graphviz=12.0.0=hba01fac_0 +gtk2=2.24.33=h6470451_5 +gts=0.7.6=h977cf35_4 +h2=4.1.0=pyhd8ed1ab_0 +harfbuzz=9.0.0=hda332d3_1 +hpack=4.0.0=pyh9f0ad1d_0 +hyperframe=6.0.1=pyhd8ed1ab_0 +icu=75.1=he02047a_0 +idna=3.10=pyhd8ed1ab_0 +imagesize=1.4.1=pyhd8ed1ab_0 +importlib-metadata=8.5.0=pyha770c72_0 +importlib_metadata=8.5.0=hd8ed1ab_0 +iniconfig=2.0.0=pyhd8ed1ab_0 +ipython=8.29.0=pypi_0 +itsdangerous=2.2.0=pyhd8ed1ab_0 +jedi=0.19.1=pypi_0 +jinja2=3.1.4=pyhd8ed1ab_0 +keyutils=1.6.1=h166bdaf_0 +kiwisolver=1.4.7=py311hd18a35c_0 +krb5=1.21.3=h659f571_0 +lcms2=2.16=hb7c19ff_0 +ld_impl_linux-64=2.43=h712a8e2_2 +lerc=4.0.0=h27087fc_0 +levenshtein=0.26.1=py311hfdbb021_0 +libabseil=20240722.0=cxx17_h5888daf_1 +libarrow=18.0.0=ha5db6c2_0_cpu +libarrow-acero=18.0.0=h5888daf_0_cpu +libarrow-dataset=18.0.0=h5888daf_0_cpu +libarrow-substrait=18.0.0=he882d9a_0_cpu +libblas=3.9.0=25_linux64_openblas +libbrotlicommon=1.1.0=hb9d3cd8_2 +libbrotlidec=1.1.0=hb9d3cd8_2 +libbrotlienc=1.1.0=hb9d3cd8_2 +libcblas=3.9.0=25_linux64_openblas +libcrc32c=1.1.2=h9c3ff4c_0 +libcurl=8.10.1=hbbe4b11_0 +libdeflate=1.22=hb9d3cd8_0 +libedit=3.1.20191231=he28a2e2_2 +libev=4.33=hd590300_2 +libevent=2.1.12=hf998b51_1 +libexpat=2.6.3=h5888daf_0 +libffi=3.4.2=h7f98852_5 +libgcc=14.2.0=h77fa898_1 +libgcc-ng=14.2.0=h69a702a_1 +libgd=2.3.3=hd3e95f3_10 +libgfortran=14.2.0=h69a702a_1 +libgfortran-ng=14.2.0=h69a702a_1 +libgfortran5=14.2.0=hd5240d6_1 +libglib=2.82.2=h2ff4ddf_0 +libgomp=14.2.0=h77fa898_1 +libgoogle-cloud=2.30.0=h438788a_0 +libgoogle-cloud-storage=2.30.0=h0121fbd_0 +libgrpc=1.65.5=hf5c653b_0 +libiconv=1.17=hd590300_2 +libjpeg-turbo=3.0.0=hd590300_1 +liblapack=3.9.0=25_linux64_openblas +libllvm14=14.0.6=hcd5def8_4 +libnghttp2=1.64.0=h161d5f1_0 +libnsl=2.0.1=hd590300_0 +libopenblas=0.3.28=pthreads_h94d23a6_0 +libparquet=18.0.0=h6bd9018_0_cpu +libpng=1.6.44=hadc24fc_0 +libprotobuf=5.27.5=h5b01275_2 +libre2-11=2024.07.02=hbbce691_1 +librsvg=2.58.4=hc0ffecb_0 +libsqlite=3.47.0=hadc24fc_1 +libssh2=1.11.0=h0841786_0 +libstdcxx=14.2.0=hc0a3c3a_1 +libstdcxx-ng=14.2.0=h4852527_1 +libthrift=0.21.0=h0e7cc3e_0 +libtiff=4.7.0=he137b08_1 +libutf8proc=2.8.0=h166bdaf_0 +libuuid=2.38.1=h0b41bf4_0 +libwebp-base=1.4.0=hd590300_0 +libxcb=1.17.0=h8a09558_0 +libxcrypt=4.4.36=hd590300_1 +libxml2=2.13.4=hb346dea_2 +libxslt=1.1.39=h76b75d6_0 +libzlib=1.3.1=hb9d3cd8_2 +llvmlite=0.43.0=py311h9c9ff8c_1 +locket=1.0.0=pyhd8ed1ab_0 +lxml=5.3.0=py311hcfaa980_2 +lz4=4.3.3=py311h2cbdf9a_1 +lz4-c=1.9.4=hcb278e6_0 +markupsafe=3.0.2=py311h2dc5d0c_0 +matplotlib-base=3.9.2=py311h2b939e6_1 +matplotlib-inline=0.1.7=pypi_0 +mpc=1.3.1=h24ddda3_1 +mpfr=4.2.1=h90cbb55_3 +mpmath=1.3.0=pyhd8ed1ab_0 +msgpack-python=1.1.0=py311hd18a35c_0 +munkres=1.1.4=pyh9f0ad1d_0 +ncurses=6.5=he02047a_1 +nest-asyncio=1.6.0=pyhd8ed1ab_0 +networkx=3.4.2=pyhd8ed1ab_1 +numba=0.60.0=py311h4bc866e_0 +numpy=1.26.4=pypi_0 +openjpeg=2.5.2=h488ebb8_0 +openpyxl=3.1.5=pypi_0 +openssl=3.3.2=hb9d3cd8_0 +opgee=4.0a0=dev_0 +orc=2.0.2=h690cf93_1 +packaging=24.1=pyhd8ed1ab_0 +pandas=2.2.3=py311h7db5c69_1 +pango=1.54.0=h4c5309f_1 +parso=0.8.4=pypi_0 +partd=1.4.2=pyhd8ed1ab_0 +pcre2=10.44=hba22ea6_2 +pexpect=4.9.0=pypi_0 +pillow=11.0.0=py311h49e9ac3_0 +pint=0.24.3=pyhd8ed1ab_0 +pint-pandas=0.6.2=pyhd8ed1ab_0 +pip=24.3.1=pyh8b19718_0 +pixman=0.43.2=h59595ed_0 +plotly=5.24.1=pyhd8ed1ab_0 +pluggy=1.5.0=pyhd8ed1ab_0 +prompt-toolkit=3.0.48=pypi_0 +psutil=6.1.0=py311h9ecbd09_0 +pthread-stubs=0.4=hb9d3cd8_1002 +ptyprocess=0.7.0=pypi_0 +pure-eval=0.2.3=pypi_0 +pyarrow=18.0.0=py311hbd00459_0 +pyarrow-core=18.0.0=py311h4854187_0_cpu +pycparser=2.22=pyhd8ed1ab_0 +pydot=3.0.1=py311h38be061_1 +pyglet=2.0.18=pypi_0 +pygments=2.18.0=pyhd8ed1ab_0 +pyparsing=3.2.0=pyhd8ed1ab_1 +pysocks=1.7.1=pyha2e5f31_6 +pytest=8.3.3=pyhd8ed1ab_0 +python=3.11.10=hc5c86c4_3_cpython +python-dateutil=2.9.0=pyhd8ed1ab_0 +python-levenshtein=0.26.1=pyhff2d567_0 +python-tzdata=2024.2=pyhd8ed1ab_0 +python_abi=3.11=5_cp311 +pytz=2024.1=pyhd8ed1ab_0 +pyxsteam=0.4.9=pypi_0 +pyyaml=6.0.2=py311h9ecbd09_1 +qhull=2020.2=h434a139_5 +rapidfuzz=3.10.1=py311hfdbb021_0 +re2=2024.07.02=h77b4e00_1 +readline=8.2=h8228510_1 +requests=2.32.3=pyhd8ed1ab_0 +retrying=1.3.3=pyhd8ed1ab_3 +s2n=1.5.5=h3931f03_0 +scipy=1.14.1=py311he9a78e4_1 +setuptools=75.3.0=pyhd8ed1ab_0 +six=1.16.0=pyh6c4a22f_0 +snappy=1.2.1=ha2e4443_0 +snowballstemmer=2.2.0=pyhd8ed1ab_0 +sortedcontainers=2.4.0=pyhd8ed1ab_0 +sphinx=8.1.3=pyhd8ed1ab_0 +sphinx-argparse=0.5.2=pyhd8ed1ab_0 +sphinx_rtd_theme=3.0.1=pyha770c72_0 +sphinxcontrib-applehelp=2.0.0=pyhd8ed1ab_0 +sphinxcontrib-devhelp=2.0.0=pyhd8ed1ab_0 +sphinxcontrib-htmlhelp=2.1.0=pyhd8ed1ab_0 +sphinxcontrib-jquery=4.1=pyhd8ed1ab_0 +sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_0 +sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_0 +sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_0 +stack-data=0.6.3=pypi_0 +sympy=1.13.3=pyh2585a3b_104 +tblib=3.0.0=pyhd8ed1ab_0 +tenacity=9.0.0=pyhd8ed1ab_0 +thermo=0.3.0=pyhd8ed1ab_0 +thermosteam=0.45.0=pypi_0 +tk=8.6.13=noxft_h4845f30_101 +tomli=2.0.2=pyhd8ed1ab_0 +toolz=1.0.0=pyhd8ed1ab_0 +tornado=6.4.1=py311h9ecbd09_1 +traitlets=5.14.3=pypi_0 +typing-extensions=4.12.2=hd8ed1ab_0 +typing_extensions=4.12.2=pyha770c72_0 +tzdata=2024b=hc8b5060_0 +unicodedata2=15.1.0=py311h9ecbd09_1 +urllib3=2.2.3=pyhd8ed1ab_0 +wcwidth=0.2.13=pypi_0 +werkzeug=3.0.6=pypi_0 +wheel=0.44.0=pyhd8ed1ab_0 +xlrd=2.0.1=pypi_0 +xorg-libice=1.1.1=hb9d3cd8_1 +xorg-libsm=1.2.4=he73a12e_1 +xorg-libx11=1.8.10=h4f16b4b_0 +xorg-libxau=1.0.11=hb9d3cd8_1 +xorg-libxdmcp=1.1.5=hb9d3cd8_0 +xorg-libxext=1.3.6=hb9d3cd8_0 +xorg-libxrender=0.9.11=hb9d3cd8_1 +xorg-xorgproto=2024.1=hb9d3cd8_1 +xyzservices=2024.9.0=pyhd8ed1ab_0 +xz=5.2.6=h166bdaf_0 +yaml=0.2.5=h7f98852_2 +zict=3.0.0=pyhd8ed1ab_0 +zipp=3.20.2=pyhd8ed1ab_0 +zlib=1.3.1=hb9d3cd8_2 +zstandard=0.23.0=py311hbc35293_1 +zstd=1.5.6=ha6fb4c9_0 diff --git a/py3-opgee-unix.yml b/py3-opgee-unix.yml index 0fd0578d..1c4ecb90 100644 --- a/py3-opgee-unix.yml +++ b/py3-opgee-unix.yml @@ -1,15 +1,14 @@ name: opgee channels: - - anaconda - conda-forge - defaults +channel_priority: strict dependencies: - - colour + - chemicals - dash - dask - dask-jobqueue - - jinja2 - - llvm-openmp + - fluids - lxml - networkx - numba @@ -21,18 +20,14 @@ dependencies: - pydot - pytest - python>=3.11.0,<3.12.0 - - semver - setuptools - sphinx - sphinx-argparse - sphinx_rtd_theme - sphinxcontrib-serializinghtml + - thermo - pip: - # - nuitka # experimental; moved here because conda version is very outdated - - chemicals - dash-cytoscape - - fluids - pyXSteam - - thermo - thermosteam diff --git a/py3-opgee-win10.yml b/py3-opgee-win10.yml index ea4f01e0..fbc0f7bf 100644 --- a/py3-opgee-win10.yml +++ b/py3-opgee-win10.yml @@ -11,7 +11,6 @@ dependencies: - jinja2 - llvm-openmp - lxml - - llvmlite - networkx - numba - numpy diff --git a/requirements.txt b/requirements.txt index 89e0d702..8d569658 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,27 +1,28 @@ # This file was generated by the script update-reqs.py. Manual edits may be lost. chemicals==1.2.0 -dash==2.14.2 +dash==2.18.1 +dash-core-components==2.0.0 dash-cytoscape==1.0.2 -dask==2024.8.2 -dask-jobqueue==0.8.2 +dash-html-components==2.0.0 +dash-table==5.0.0 +dask==2024.10.0 +dask-jobqueue==0.9.0 fluids==1.0.26 -future==0.18.3 -lxml==5.2.1 -matplotlib==3.9.2 -networkx==3.2.1 +future==1.0.0 +lxml==5.3.0 +networkx==3.4.2 numpy==1.26.4 -pandas==2.2.2 +pandas==2.2.3 pint==0.24.3 pint-pandas==0.6.2 -pydot==1.4.2 -pytest==7.4.4 -python-dateutil==2.9.0post0 +pydot==3.0.1 +pytest==8.3.3 +python-dateutil==2.9.0 pyxsteam==0.4.9 scipy==1.14.1 -semver==3.0.2 -setuptools==75.1.0 -sphinx==7.3.7 +setuptools==75.3.0 +sphinx==8.1.3 sphinx-argparse==0.5.2 -sphinx_rtd_theme==2.0.0 +sphinx_rtd_theme==3.0.1 thermo==0.3.0 thermosteam==0.45.0 diff --git a/update-reqs.py b/update-reqs.py index 61f60703..4ca43637 100755 --- a/update-reqs.py +++ b/update-reqs.py @@ -18,7 +18,7 @@ def main(): pkgs = [line.strip() for line in f.readlines() if not line.startswith('#')] expr = '(' + '|'.join(pkgs) + ')' - cmd = f"conda list -n opgee | egrep -v '^#' | egrep '^{expr}\s+'" + cmd = f"conda list -n opgee | egrep -v '^#' | egrep '^{expr}\\s+'" if Verbose: print(cmd) From 4e6a6c93498160e12aeaa2fc0dddeba77a8f1453 Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Fri, 1 Nov 2024 21:42:34 -0600 Subject: [PATCH 07/20] unify conda envs --- py3-opgee-unix.yml => py3-opgee-all.yml | 0 py3-opgee-win10.yml | 36 ------------------------- 2 files changed, 36 deletions(-) rename py3-opgee-unix.yml => py3-opgee-all.yml (100%) delete mode 100644 py3-opgee-win10.yml diff --git a/py3-opgee-unix.yml b/py3-opgee-all.yml similarity index 100% rename from py3-opgee-unix.yml rename to py3-opgee-all.yml diff --git a/py3-opgee-win10.yml b/py3-opgee-win10.yml deleted file mode 100644 index fbc0f7bf..00000000 --- a/py3-opgee-win10.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: opgee -channels: - - anaconda - - conda-forge - - defaults -dependencies: - - colour - - dash - - dask - - dask-jobqueue - - jinja2 - - llvm-openmp - - lxml - - networkx - - numba - - numpy - - pandas - - pint - - pint-pandas - - pip - - pydot - - pytest - - python>=3.9.0,<3.10.0 - - semver - - setuptools - - sphinx - - sphinx-argparse - - sphinx_rtd_theme - - sphinxcontrib-serializinghtml - - thermo - - fluids - - chemicals - - pip: - - thermosteam - - pyXSteam - - dash-cytoscape \ No newline at end of file From 0611f56f558110be6b1d3947fbf592263f0729b0 Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Fri, 1 Nov 2024 21:44:46 -0600 Subject: [PATCH 08/20] remove arch from matrix, "macos-latest" curretly uses M1 --- .github/workflows/opgee-test.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/opgee-test.yml b/.github/workflows/opgee-test.yml index 67107c6e..9f415e8c 100644 --- a/.github/workflows/opgee-test.yml +++ b/.github/workflows/opgee-test.yml @@ -10,13 +10,7 @@ jobs: test: strategy: matrix: - os: [ubuntu-latest, macos-latest] - arch: [x64, arm64] - exclude: - - os: ubuntu-latest - arch: arm64 - - os: macos-latest - arch: x64 + os: [ubuntu-latest, macos-latest, windows-latest] max-parallel: 5 runs-on: ${{ matrix.os }} defaults: From b1344a6a28cda6f4e4fae310e4777ec111cb7789 Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Fri, 1 Nov 2024 21:49:01 -0600 Subject: [PATCH 09/20] rename env file --- .github/workflows/opgee-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/opgee-test.yml b/.github/workflows/opgee-test.yml index 9f415e8c..fcede888 100644 --- a/.github/workflows/opgee-test.yml +++ b/.github/workflows/opgee-test.yml @@ -20,7 +20,7 @@ jobs: OPGEE_HOME: ${{ github.workspace }}/tests/files CI: 'true' opgee_pkg_list: 'opgee.pkg_list.txt' - opgee_env_yml: 'py3-opgee-unix.yml' + opgee_env_yml: 'py3-opgee-all.yml' steps: - uses: actions/checkout@v4 - name: Cache pip dependencies From cfc0acfa1ca2e26f6b698e50e5b6204f0175243d Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Fri, 1 Nov 2024 22:02:01 -0600 Subject: [PATCH 10/20] remove channel priority --- py3-opgee-all.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/py3-opgee-all.yml b/py3-opgee-all.yml index 1c4ecb90..e3d3c680 100644 --- a/py3-opgee-all.yml +++ b/py3-opgee-all.yml @@ -2,7 +2,6 @@ name: opgee channels: - conda-forge - defaults -channel_priority: strict dependencies: - chemicals - dash From 5f736285bd62f793cf0a984e41ba3ee78d399ed7 Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Sun, 3 Nov 2024 17:53:01 -0700 Subject: [PATCH 11/20] fix failing windows test --- tests/test_config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_config.py b/tests/test_config.py index 31b7af6a..be7b1740 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -29,7 +29,7 @@ def test_realpath(tmp_path): # built-in fixture returns a temporary directory bar = tmp_path / 'bar.txt' os.symlink(foo, bar) - assert pathjoin(bar, realpath=True) == str(foo) + assert pathjoin(bar, realpath=True) == unixPath(str(foo)) def test_reload(): From c030ae3af60d56c7fdd937d73eb9a0524d984144 Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Sun, 3 Nov 2024 17:55:44 -0700 Subject: [PATCH 12/20] rename env yml --- py3-opgee-all.yml => py3-opgee.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename py3-opgee-all.yml => py3-opgee.yml (100%) diff --git a/py3-opgee-all.yml b/py3-opgee.yml similarity index 100% rename from py3-opgee-all.yml rename to py3-opgee.yml From f2a796d5f729a41cc63d002665aa3dc2ff4080c1 Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Sun, 3 Nov 2024 17:57:47 -0700 Subject: [PATCH 13/20] fix env name ref --- .github/workflows/opgee-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/opgee-test.yml b/.github/workflows/opgee-test.yml index fcede888..7f0bc729 100644 --- a/.github/workflows/opgee-test.yml +++ b/.github/workflows/opgee-test.yml @@ -20,7 +20,7 @@ jobs: OPGEE_HOME: ${{ github.workspace }}/tests/files CI: 'true' opgee_pkg_list: 'opgee.pkg_list.txt' - opgee_env_yml: 'py3-opgee-all.yml' + opgee_env_yml: 'py3-opgee.yml' steps: - uses: actions/checkout@v4 - name: Cache pip dependencies From 2d7290f26fd47eac7b81fdaaeb6e279e99093d07 Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Sun, 3 Nov 2024 18:02:10 -0700 Subject: [PATCH 14/20] fix conditional --- .github/workflows/opgee-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/opgee-test.yml b/.github/workflows/opgee-test.yml index 7f0bc729..da42ff35 100644 --- a/.github/workflows/opgee-test.yml +++ b/.github/workflows/opgee-test.yml @@ -53,6 +53,6 @@ jobs: conda env update -n opgee -f $opgee_env_yml pip install -e . pip install pytest-cov codecov coveralls PyYAML - if: steps.pip-cache.outputs.cache-hit != 'true' || steps.opgee-env-cache.cache-hit != 'true' + if: steps.pip-cache.outputs.cache-hit != 'true' || steps.opgee-env-cache.outputs.cache-hit != 'true' - name: Run unit tests with coverage run: coverage run --source=opgee -m pytest From 4eb3bfff544ffaf7835a1f8ff4dd1be9a1a4519c Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Sun, 3 Nov 2024 18:14:13 -0700 Subject: [PATCH 15/20] add conda package caching --- .github/workflows/opgee-test.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/opgee-test.yml b/.github/workflows/opgee-test.yml index da42ff35..ae9f5253 100644 --- a/.github/workflows/opgee-test.yml +++ b/.github/workflows/opgee-test.yml @@ -23,6 +23,14 @@ jobs: opgee_env_yml: 'py3-opgee.yml' steps: - uses: actions/checkout@v4 + - name: Cache Conda packages + uses: actions/cache@v3 + env: + CACHE_NUMBER: 0 + with: + enableCrossOsArchive: true + path: ${{ runner.os == 'Windows' && 'D:\conda_pkgs_dir' || '~/conda_pkgs_dir'}} + key: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{ hashFiles(env.opgee_env_yml) }} - name: Cache pip dependencies uses: actions/cache@v3 id: pip-cache From f4cc72483284e9fe72860899f77b425a8301f555 Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Sun, 3 Nov 2024 18:23:23 -0700 Subject: [PATCH 16/20] fix formatting, add cross os caching --- .github/workflows/opgee-test.yml | 90 ++++++++++++++++---------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/.github/workflows/opgee-test.yml b/.github/workflows/opgee-test.yml index ae9f5253..bdf66860 100644 --- a/.github/workflows/opgee-test.yml +++ b/.github/workflows/opgee-test.yml @@ -18,49 +18,49 @@ jobs: shell: bash -el {0} env: OPGEE_HOME: ${{ github.workspace }}/tests/files - CI: 'true' - opgee_pkg_list: 'opgee.pkg_list.txt' - opgee_env_yml: 'py3-opgee.yml' + CI: "true" + opgee_pkg_list: "opgee.pkg_list.txt" + opgee_env_yml: "py3-opgee.yml" steps: - - uses: actions/checkout@v4 - - name: Cache Conda packages - uses: actions/cache@v3 - env: - CACHE_NUMBER: 0 - with: - enableCrossOsArchive: true - path: ${{ runner.os == 'Windows' && 'D:\conda_pkgs_dir' || '~/conda_pkgs_dir'}} - key: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{ hashFiles(env.opgee_env_yml) }} - - name: Cache pip dependencies - uses: actions/cache@v3 - id: pip-cache - with: - path: ~/.cache/pip - key: - ${{ runner.os }}-pip-${{ hashFiles('requirements.txt')}} - restore-keys: | - ${{ runner.os }}-pip- - - name: Init Anaconda - uses: conda-incubator/setup-miniconda@v3 - with: - miniforge-version: latest - activate-environment: opgee - python-version: 3.9 - - name: Cache OPGEE env - id: opgee-env-cache - uses: actions/cache@v3 - env: - # increment cache number to invalidate and rebuild the env - CACHE_NUMBER: 0 - with: - path: ${{ env.CONDA }}/envs - key: - ${{ runner.os }}-conda-${{ runner.arch }}-${{ hashFiles(env.opgee_pkg_list) }}-${{ env.CACHE_NUMBER }} - - name: Update Conda env and pip dependencies - run: | - conda env update -n opgee -f $opgee_env_yml - pip install -e . - pip install pytest-cov codecov coveralls PyYAML - if: steps.pip-cache.outputs.cache-hit != 'true' || steps.opgee-env-cache.outputs.cache-hit != 'true' - - name: Run unit tests with coverage - run: coverage run --source=opgee -m pytest + - uses: actions/checkout@v4 + - name: Cache Conda packages + uses: actions/cache@v3 + env: + CACHE_NUMBER: 0 + with: + enableCrossOsArchive: true + path: ${{ runner.os == 'Windows' && 'D:\conda_pkgs_dir' || '~/conda_pkgs_dir'}} + key: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{ hashFiles(env.opgee_env_yml) }} + - name: Cache pip dependencies + uses: actions/cache@v3 + id: pip-cache + with: + enableCrossOsArchive: true + path: ${{ runner.os == 'Windows' && 'D:\.cache\pp' || '~/.cache/pip' }} + key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt')}} + restore-keys: | + ${{ runner.os }}-pip- + - name: Init Anaconda + uses: conda-incubator/setup-miniconda@v3 + with: + miniforge-version: latest + activate-environment: opgee + python-version: 3.9 + - name: Cache OPGEE env + id: opgee-env-cache + uses: actions/cache@v3 + env: + # increment cache number to invalidate and rebuild the env + CACHE_NUMBER: 0 + with: + enableCrossOsArchive: true + path: ${{ env.CONDA }}/envs + key: ${{ runner.os }}-conda-${{ runner.arch }}-${{ hashFiles(env.opgee_pkg_list) }}-${{ env.CACHE_NUMBER }} + - name: Update Conda env and pip dependencies + run: | + conda env update -n opgee -f $opgee_env_yml + pip install -e . + pip install pytest-cov codecov coveralls PyYAML + if: steps.pip-cache.outputs.cache-hit != 'true' || steps.opgee-env-cache.outputs.cache-hit != 'true' + - name: Run unit tests with coverage + run: coverage run --source=opgee -m pytest From 2667cd10a608e711de917d349c1f8c952d90619f Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Sun, 3 Nov 2024 18:40:42 -0700 Subject: [PATCH 17/20] fix pip cache path, update cache action version --- .github/workflows/opgee-test.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/opgee-test.yml b/.github/workflows/opgee-test.yml index bdf66860..d9f409b9 100644 --- a/.github/workflows/opgee-test.yml +++ b/.github/workflows/opgee-test.yml @@ -24,19 +24,21 @@ jobs: steps: - uses: actions/checkout@v4 - name: Cache Conda packages - uses: actions/cache@v3 + uses: actions/cache@v4 env: CACHE_NUMBER: 0 with: enableCrossOsArchive: true path: ${{ runner.os == 'Windows' && 'D:\conda_pkgs_dir' || '~/conda_pkgs_dir'}} key: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{ hashFiles(env.opgee_env_yml) }} + restore-keys: | + ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}- - name: Cache pip dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 id: pip-cache with: enableCrossOsArchive: true - path: ${{ runner.os == 'Windows' && 'D:\.cache\pp' || '~/.cache/pip' }} + path: ${{ runner.os == 'Windows' && 'D:\.cache\pip' || runner.os == 'macOS' && '~/Library/Caches/pip' || '~/.cache/pip' }} key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt')}} restore-keys: | ${{ runner.os }}-pip- @@ -48,7 +50,7 @@ jobs: python-version: 3.9 - name: Cache OPGEE env id: opgee-env-cache - uses: actions/cache@v3 + uses: actions/cache@v4 env: # increment cache number to invalidate and rebuild the env CACHE_NUMBER: 0 From d05fdd21052b84203c96b24325e4cc323d4beb74 Mon Sep 17 00:00:00 2001 From: Richard Plevin Date: Fri, 1 Nov 2024 09:38:32 -0700 Subject: [PATCH 18/20] Modified field graph to have arrowheads and stream content names. (Added on this branch owing to updated python env that only works in this branch currently!) --- opgee/graph.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/opgee/graph.py b/opgee/graph.py index c5d39ad7..ff6e627f 100644 --- a/opgee/graph.py +++ b/opgee/graph.py @@ -91,13 +91,15 @@ def add_tree(graph, obj, level): display_in_notebook(graph) def write_process_diagram(field, pathname): - graph = pydot.Dot('model', graph_type='graph', bgcolor='white') + graph = pydot.Dot('model', graph_type='digraph', bgcolor='white') for name, proc in field.process_dict.items(): graph.add_node(pydot.Node(name, shape='box')) for name, stream in field.stream_dict.items(): - graph.add_edge(pydot.Edge(stream.src_name, stream.dst_name, color='black')) + contents = ', '.join(stream.contents) + graph.add_edge(pydot.Edge(stream.src_name, stream.dst_name, + color='black', label=contents)) _logger.info(f"Writing {pathname}") graph.write_png(pathname) From 7d4439e24927b08c63ba5d77d95904b16da1f6cd Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Mon, 4 Nov 2024 15:42:45 -0700 Subject: [PATCH 19/20] update opgee env file name --- Makefile | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Makefile b/Makefile index e5658ec1..33ab2287 100644 --- a/Makefile +++ b/Makefile @@ -65,14 +65,7 @@ travis-reqs $(TRAVIS_REQS): requirements.in # # Virtual environment / package dependency support # -UNAME=$(strip $(shell uname)) -ifeq ($(UNAME), Darwin) - YML_FILE=py3-opgee-unix.yml -else ifeq ($(UNAME), Linux) - YML_FILE=py3-opgee-unix.yml -else - YML_FILE=py3-opgee-win10.yml -endif +YML_FILE=py3-opgee.yml #INPUT_YML=py3-opgee-macos.yml From dd60959feaa00b78a4d27d6a0a2058301c273817 Mon Sep 17 00:00:00 2001 From: Michael Barlow Date: Mon, 4 Nov 2024 15:43:06 -0700 Subject: [PATCH 20/20] pkg list update --- opgee.pkg_list.txt | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/opgee.pkg_list.txt b/opgee.pkg_list.txt index fca28feb..a051cd1e 100644 --- a/opgee.pkg_list.txt +++ b/opgee.pkg_list.txt @@ -8,19 +8,19 @@ ansicolors=1.1.8=pypi_0 appdirs=1.4.4=pyh9f0ad1d_0 asttokens=2.4.1=pypi_0 atk-1.0=2.38.0=h04ea711_2 -aws-c-auth=0.7.31=hcdce11a_5 -aws-c-cal=0.7.4=hd3f4568_4 +aws-c-auth=0.8.0=h56a2c13_4 +aws-c-cal=0.8.0=hd3f4568_0 aws-c-common=0.9.31=hb9d3cd8_0 -aws-c-compression=0.2.19=hf20e7d7_4 -aws-c-event-stream=0.5.0=h72d8268_0 -aws-c-http=0.8.10=h6bb76cc_5 -aws-c-io=0.14.20=h389d861_2 -aws-c-mqtt=0.10.7=had056f2_5 -aws-c-s3=0.7.0=hc85afc5_0 -aws-c-sdkutils=0.1.19=hf20e7d7_6 -aws-checksums=0.1.20=hf20e7d7_3 -aws-crt-cpp=0.29.0=h07ed512_0 -aws-sdk-cpp=1.11.407=h9c41b47_6 +aws-c-compression=0.3.0=hf20e7d7_0 +aws-c-event-stream=0.5.0=h68c3b0c_2 +aws-c-http=0.9.0=hfad4ed3_3 +aws-c-io=0.15.0=h17eb868_2 +aws-c-mqtt=0.11.0=h407ecb8_2 +aws-c-s3=0.7.0=hadeddc1_5 +aws-c-sdkutils=0.2.0=hf20e7d7_0 +aws-checksums=0.2.0=hf20e7d7_0 +aws-crt-cpp=0.29.0=h73f0fd4_6 +aws-sdk-cpp=1.11.407=h6a6dca0_6 azure-core-cpp=1.14.0=h5cfcd09_0 azure-identity-cpp=1.10.0=h113e628_0 azure-storage-blobs-cpp=12.13.0=h3cf044e_1 @@ -115,10 +115,10 @@ ld_impl_linux-64=2.43=h712a8e2_2 lerc=4.0.0=h27087fc_0 levenshtein=0.26.1=py311hfdbb021_0 libabseil=20240722.0=cxx17_h5888daf_1 -libarrow=18.0.0=ha5db6c2_0_cpu -libarrow-acero=18.0.0=h5888daf_0_cpu -libarrow-dataset=18.0.0=h5888daf_0_cpu -libarrow-substrait=18.0.0=he882d9a_0_cpu +libarrow=18.0.0=ha5db6c2_1_cpu +libarrow-acero=18.0.0=h5888daf_1_cpu +libarrow-dataset=18.0.0=h5888daf_1_cpu +libarrow-substrait=18.0.0=h5c8f2c3_1_cpu libblas=3.9.0=25_linux64_openblas libbrotlicommon=1.1.0=hb9d3cd8_2 libbrotlidec=1.1.0=hb9d3cd8_2 @@ -140,9 +140,9 @@ libgfortran-ng=14.2.0=h69a702a_1 libgfortran5=14.2.0=hd5240d6_1 libglib=2.82.2=h2ff4ddf_0 libgomp=14.2.0=h77fa898_1 -libgoogle-cloud=2.30.0=h438788a_0 -libgoogle-cloud-storage=2.30.0=h0121fbd_0 -libgrpc=1.65.5=hf5c653b_0 +libgoogle-cloud=2.30.0=h804f50b_1 +libgoogle-cloud-storage=2.30.0=h0121fbd_1 +libgrpc=1.67.1=hc2c308b_0 libiconv=1.17=hd590300_2 libjpeg-turbo=3.0.0=hd590300_1 liblapack=3.9.0=25_linux64_openblas @@ -150,9 +150,9 @@ libllvm14=14.0.6=hcd5def8_4 libnghttp2=1.64.0=h161d5f1_0 libnsl=2.0.1=hd590300_0 libopenblas=0.3.28=pthreads_h94d23a6_0 -libparquet=18.0.0=h6bd9018_0_cpu +libparquet=18.0.0=h6bd9018_1_cpu libpng=1.6.44=hadc24fc_0 -libprotobuf=5.27.5=h5b01275_2 +libprotobuf=5.28.2=h5b01275_0 libre2-11=2024.07.02=hbbce691_1 librsvg=2.58.4=hc0ffecb_0 libsqlite=3.47.0=hadc24fc_1 @@ -191,7 +191,7 @@ openjpeg=2.5.2=h488ebb8_0 openpyxl=3.1.5=pypi_0 openssl=3.3.2=hb9d3cd8_0 opgee=4.0a0=dev_0 -orc=2.0.2=h690cf93_1 +orc=2.0.2=he039a57_2 packaging=24.1=pyhd8ed1ab_0 pandas=2.2.3=py311h7db5c69_1 pango=1.54.0=h4c5309f_1 @@ -234,7 +234,7 @@ re2=2024.07.02=h77b4e00_1 readline=8.2=h8228510_1 requests=2.32.3=pyhd8ed1ab_0 retrying=1.3.3=pyhd8ed1ab_3 -s2n=1.5.5=h3931f03_0 +s2n=1.5.6=h0e56266_0 scipy=1.14.1=py311he9a78e4_1 setuptools=75.3.0=pyhd8ed1ab_0 six=1.16.0=pyh6c4a22f_0