v0.2.19
foehn 0.2.19
New
DownloadResultreturn type — Alldownload_*functions now return a
DownloadResultdataclass withtotal_assets,downloaded,skipped, and
filenames. Useresult.downloaded > 0to gate expensive downstream work
(e.g. SparkMERGE INTO) without scanning the bronze directory.sincefilter fordownload_netcdf— NetCDF/GeoTIFF/ZIP collections now
support incremental updates, matchingdownload_collectionand
download_grib2.- Exported
DownloadResultfrom the top-levelfoehnpackage.
Changed
foehn.download()now returnsDownloadResult(previouslyNone), combining
metadata + collection counts.- Connection pool size in
_retry_sessionnow scales withworkers, avoiding
urllib3 "connection pool is full" warnings on high-concurrency downloads.
Migration
# Before
foehn.download("smn")
# After — gate downstream work on actual changes
result = foehn.download("smn")
if result.downloaded:
run_spark_merge(result.filenames)No breaking changes — callers ignoring the return value continue to work.