diff --git a/docs/project/changelog.md b/docs/project/changelog.md index 24f5a88b6..0c31151ce 100644 --- a/docs/project/changelog.md +++ b/docs/project/changelog.md @@ -86,7 +86,8 @@ myst: - New packages: sourmash {pr}`3635`, screed {pr}`3635`, bitstring {pr}`3635`, deprecation {pr}`3635`, cachetools {pr}`3635`, xyzservices {pr}`3786`, simplejson {pr}`3801`, protobuf {pr}`3813`, peewee {pr}`3897`, - Cartopy {pr}`3909`, pyshp {pr}`3909`, netCDF4 {pr}`3910`, igraph {pr}`3991`. + Cartopy {pr}`3909`, pyshp {pr}`3909`, netCDF4 {pr}`3910`, igraph {pr}`3991`, + CoolProp {pr}`4028`. - Upgraded libmpfr to 4.2.0 {pr}`3756`. - Upgraded scipy to 1.11.1 {pr}`3794`, {pr}`3996` - Upgraded scikit-image to 0.21 {pr}`3874` diff --git a/packages/coolprop/meta.yaml b/packages/coolprop/meta.yaml new file mode 100644 index 000000000..5eaabeb93 --- /dev/null +++ b/packages/coolprop/meta.yaml @@ -0,0 +1,33 @@ +package: + name: coolprop + version: 6.4.3 + top-level: + - CoolProp + +source: + url: https://sourceforge.net/projects/coolprop/files/CoolProp/6.4.3/source/CoolProp_sources.zip + sha256: 7d43ef778e5e245720261311fe86c8a1492a7dc49c0155408344117a81465f7d + extract_dir: source + + extras: + - - setup.py + - ./setup.py + - - pyproject.toml + - ./pyproject.toml + +requirements: + run: + - numpy + - matplotlib + +test: + imports: + - CoolProp + - CoolProp.GUI + - CoolProp.Plots + +about: + home: http://www.coolprop.org + PyPI: https://pypi.org/project/CoolProp + summary: "Open-source thermodynamic and transport properties database" + license: MIT diff --git a/packages/coolprop/pyproject.toml b/packages/coolprop/pyproject.toml new file mode 100644 index 000000000..d52d00f28 --- /dev/null +++ b/packages/coolprop/pyproject.toml @@ -0,0 +1,4 @@ +[build-system] +requires = ["setuptools>=42", "wheel", "Cython==0.29.34"] + +build-backend = "setuptools.build_meta" diff --git a/packages/coolprop/setup.py b/packages/coolprop/setup.py new file mode 100644 index 000000000..239695243 --- /dev/null +++ b/packages/coolprop/setup.py @@ -0,0 +1,16 @@ +import os +import sys + +wrappers_python_path = os.path.join(os.path.dirname(__file__), "wrappers", "Python") +sys.path.append(wrappers_python_path) +os.chdir(wrappers_python_path) +SETUP_PATH = "setup.py" +with open(SETUP_PATH) as f: + globals = { + "__file__": SETUP_PATH, + "__name__": "__main__", + "sys": sys, + "argv": sys.argv, + } + code = compile(f.read(), SETUP_PATH, "exec") + exec(code, globals, None) diff --git a/packages/coolprop/test_coolprop.py b/packages/coolprop/test_coolprop.py new file mode 100644 index 000000000..2b1dd19fd --- /dev/null +++ b/packages/coolprop/test_coolprop.py @@ -0,0 +1,15 @@ +from pytest_pyodide import run_in_pyodide + + +@run_in_pyodide(packages=["coolprop"]) +def test_simple_propssi(selenium): + from CoolProp.CoolProp import PropsSI + + assert round(PropsSI("T", "P", 101325, "Q", 0, "Water"), 3) == 373.124 + + +@run_in_pyodide(packages=["coolprop"]) +def test_simple_phasesi(selenium): + from CoolProp.CoolProp import PhaseSI + + assert PhaseSI("P", 101325, "Q", 0, "Water") == "twophase"