v1.0.0
[1.0.0] — 2026-05-07 (package) | Model: v1.1.0
First release of
ise-pyon PyPI. This version represents a full rewrite of the
originalisepackage, introducing ISEFlow as the primary model, GrIS support,
HuggingFace Hub weight distribution, validated input dataclasses, anomaly conversion,
and a complete test suite and CI/CD pipeline.
Changed
- Breaking: Package renamed from
isetoise-pyon PyPI; import name staysise. - Breaking:
from_raw_values()renamed tofrom_absolute_forcings()on both
ISEFlowAISInputsandISEFlowGrISInputs; old name kept as a deprecated alias
(emitsDeprecationWarning) until further versions. - Breaking: Model classes restructured —
ise.models.ISEFlow.ISEFlow,
ise.models.predictors.deep_ensemble, andise.models.density_estimators.normalizing_flow
replaced by top-levelISEFlow,DeepEnsemble,NormalizingFlow, andLSTMin
ise.models. - Pretrained weights moved to HuggingFace Hub (
pvankatwyk/ISEFlow); downloaded
automatically on first use viahuggingface_hub. Falls back to bundled local weights
when HuggingFace is unavailable (air-gapped HPC / local dev). - Build system switched from
setup.py+setuptoolsto Hatchling (pyproject.toml);
runtime dependencies cleaned up — removed transitive pins, moved dev/docs/GPU deps to
optional extras. Removed heavy deps from core:seaborn,cartopy,geopandas,
pyproj,xesmf,clisops,owslib,statsmodels. - Replaced
flake8+isort+blackwithruff; updatedpyproject.tomland
pre-commit config. - mypy fixes: replaced
= Nonedefaults with| Noneunions acrossforcings.py,
grids.py,inputs.py,process.py,feature_engineer.py,training.py,
functions.py, andanomaly.py; explicit type annotations onForcingFileand
GridFileinstance attributes. ISEFlow_AIS.predict/ISEFlow_GrIS.predictmarked# type: ignore[override]to
satisfy mypy while preserving the intentional signature narrowing.- Variable shadowing fixed in
ProjectionProcessorandget_model_densities. backfill_outliersdocstring corrected (bfill, not ffill).AnomalyConverterupdated to support GrIS MAR integration; GrIS anomaly variables
(aSMB,aST) pass through unchanged (already anomalies in ISMIP6).- NaN handling added in NormalizingFlow sampling.
- Introduced separate package vs. model versioning (see above).
Added
ISEFlow_AISandISEFlow_GrIS— convenience subclasses ofISEFlowfor
AIS (18 sectors) and GrIS (6 basins) with pretrained weight loading.ISEFlowAISInputs/ISEFlowGrISInputs— validated input dataclasses for
model.predict(), withfrom_absolute_forcings()classmethod for raw forcing values.AnomalyConverter— converts absolute sector-averaged forcings to ISMIP6
anomalies using bundled climatology CSVs; called internally byfrom_absolute_forcings().ForcingFile(ise/data/forcings.py) — loads and formats climate forcing NetCDF
files to 86-step ISMIP6 time series, with depth aggregation and sector assignment.GridFile(ise/data/grids.py) — loads sector boundary grids.NormalizingFlow(ise/models/normalizing_flow.py) — standalone autoregressive
masked affine flow replacing the olddensity_estimators/normalizing_flow.py.LSTM(ise/models/lstm.py) — standalone LSTM replacingpredictors/lstm.py,
with variable sequence length and save/load support.DeepEnsemble(ise/models/deep_ensemble.py) — rewritten ensemble, trained on
[X, z]wherezis the NF latent; captures epistemic uncertainty.ise/data/utils.py—convert_and_subset_times()for xarray time handling.ise/utils/io.py—check_type()runtime type validation helper.ise/data/data_files/ismip6_model_configs.jsonand
ise/data/data_files/GrIS_ismip6_model_configs.json— ISM configuration lookup tables.ise/data/data_files/AIS_atmos_climatologies.csvand
ise/data/data_files/GrIS_atmos_climatologies.csv** — bundled ISMIP6 climatology
baselines used byAnomalyConverter.- ISEFlow model weights (v1.1.0) for both AIS and GrIS on HuggingFace Hub.
ise.__version__attribute (read from package metadata viaimportlib.metadata).ise/py.typedmarker for PEP 561 type-checking support.[tool.mypy],[tool.pytest.ini_options],[tool.coverage.run]sections in
pyproject.toml..pre-commit-config.yaml,.editorconfig,Makefile.CHANGELOG.md,CONTRIBUTING.md,CITATION.cff.- GitHub Actions CI workflow (lint + test on Python 3.11 & 3.12), mypy CI job, and
release workflow (OIDC trusted publisher). - GitHub Actions issue templates.
- Slow and GPU pytest markers;
skip_if_no_gpuhelper inconftest.py. __all__exports defined in all subpackage__init__.pyfiles.- Full test suite covering anomaly conversion, input dataclasses, all model components,
scalers, loss functions, training utilities, and metrics (244 tests). - Example scripts:
example_ais.py,example_gris.py,example_absolute_forcings.py,
process_training_data.py. wandbadded as a core dependency (used in NF and LSTM training).
Removed
ise/models/ISEFlow/directory (old monolithicISEFlow.py,de.py,nf.py).ise/models/predictors/directory (lstm.py,deep_ensemble.py).ise/models/density_estimators/directory (normalizing_flow.py).setup.py(replaced bypyproject.toml+ Hatchling).variational_lstm_emulator.ptlegacy weight file (unused).- Stray
ISEFlow_GrIS_v1-1-0 copy/duplicate weights directory. - Old example scripts
ISEFlow_from_NC.pyandISEFlow_predict.py.
Full Changelog: https://github.com/Brown-SciML/ise/commits/v1.0.0