Spaces:
Running
Running
| [build-system] | |
| requires = ["maturin>=1.7,<2.0"] | |
| build-backend = "maturin" | |
| [project] | |
| name = "mountain_waves" | |
| version = "0.1.0" | |
| description = "Interactive 2-D mountain-wave model with Rust core and Dash front end. Port of Robert E. Hart's 1995 MATLAB mountain-wave tool." | |
| readme = "README.md" | |
| requires-python = ">=3.9" | |
| authors = [{ name = "Mountain Waves port (Rust + Dash)" }] | |
| maintainers = [{ name = "Mountain Waves port (Rust + Dash)" }] | |
| license = { text = "MIT" } | |
| keywords = ["meteorology", "mountain-waves", "atmospheric-science", "taylor-goldstein", "scorer-parameter"] | |
| dependencies = [ | |
| "numpy>=1.23", | |
| "scipy>=1.10", | |
| "dash>=2.16", | |
| "plotly>=5.20", | |
| # HRRR profile fetcher (Profile tab "Initialize from HRRR"). | |
| # cfgrib needs the eccodes C library. Rather than requiring a system | |
| # install (brew install eccodes / apt install libeccodes-dev) we pull | |
| # it in from PyPI only. Current story (verified on PyPI, 2026-04): | |
| # - `cfgrib` depends on `eccodes` (Python CFFI bindings, pure-Python | |
| # wheel — no binary). | |
| # - `eccodes` depends on `findlibs`, which looks for `libeccodes` in | |
| # an installed Python package named `eccodeslib` first. | |
| # - `eccodeslib` is ECMWF's new official binary-wheel package | |
| # (macOS 13+ arm64/x86_64, manylinux_2_28 x86_64/aarch64, cp310..cp314). | |
| # - `ecmwflibs` is the older bundle; stale since 2024 and missing | |
| # cp312+. We keep it only as a Windows fallback since `eccodeslib` | |
| # has no Windows wheels. | |
| # Result: `uv sync` / `pip install -e .` is enough on macOS and Linux. | |
| "boto3>=1.28", | |
| "xarray>=2023.1", | |
| "cfgrib>=0.9.10", | |
| "eccodes>=2.37", | |
| "eccodeslib>=2.46 ; sys_platform != 'win32'", | |
| "ecmwflibs>=0.6 ; sys_platform == 'win32'", | |
| ] | |
| [project.urls] | |
| "Original model (Hart 1995)" = "https://moe.met.fsu.edu/~rhart/mtnwave.html" | |
| [project.optional-dependencies] | |
| dev = ["maturin>=1.7", "pytest>=7"] | |
| [tool.maturin] | |
| # Mixed layout: Rust crate at project root, Python package under python/. | |
| python-source = "python" | |
| module-name = "mountain_waves._core" | |
| features = ["pyo3/extension-module"] | |