Skip to content

Releases: lqgentner/freezebase

freezebase 0.6.0

Choose a tag to compare

@lqgentner lqgentner released this 25 Aug 14:12
f168ad9

Added

  • write_cog and rewrite_tiff take tags, band_tags and units, writing
    dataset-level tags, per-band tags and band unit strings. All three are
    keyword-only and default to None, so existing calls are unchanged.

Fixed

  • rewrite_tiff no longer loses LAYOUT: COG when a non-GTiff destination
    carries band descriptions, tags, band tags or units. All of those live in the
    GDAL_METADATA TIFF tag, which grows when written into a finished file and is
    relocated behind the image data; they now go into an intermediate GTiff so
    the driver copy writes the final layout around them.
  • Every per-band sequence (band_names, color_interp, band_tags, units)
    is now rejected if it does not match the band count.
  • The s3 extra now requires s3fs>=2026.7.0. Earlier versions cache a
    prefix-filtered listing under the unfiltered directory key
    (fsspec/s3fs#1034), so a single
    glob("prefix*") makes every later listing miss files.

freezebase 0.5.0

Choose a tag to compare

@lqgentner lqgentner released this 24 Aug 10:04
9670903

Added

  • Python 3.14 support
  • freezebase.__version__, read from the installed distribution metadata.

Fixed

  • HTTPDownloader now closes the streamed response on every path out of a
    download, not only on the successful one.

freezebase 0.4.0

Choose a tag to compare

@lqgentner lqgentner released this 17 Aug 12:30

Added

  • HTTPDownloader.close() and context-manager support, which close the
    downloader's session and release its pooled connections. Creating one
    downloader per download previously held a connection open until the garbage
    collector ran, which made downstream test suites fail unpredictably. The
    session is also closed on garbage collection as a fallback.

Changed

  • Breaking: HTTPDownloader no longer forwards arbitrary keyword arguments
    to requests. method and timeout are now named parameters and are spelled
    exactly as before, so calls that only used those keep working; method is
    restricted to "GET" and "POST". Any other requests keyword, such as
    params or headers, now raises TypeError instead of reaching the request.
    To configure the transport, for example a connection pool size, mount an
    adapter on HTTPDownloader.session.

freezebase 0.3.0

Choose a tag to compare

@lqgentner lqgentner released this 05 Aug 11:11
27b1f60

This release marks the first release of freezebase on PyPI!

Added

  • Per-path named AWS profile support in make_s3_upath. Combinable with a custom
    endpoint_url, mutually exclusive with anon=True and explicit
    key/secret/token. Setting a profile takes environment credentials out of
    boto's resolution chain, so the path signs with the profile's keys only.
  • aws_session, returning the cached Rasterio AWSSession for an S3 path, and
    clear_aws_session_cache to discard those sessions. Prefer aws_session over
    constructing an AWSSession directly, so every layer signs identically.

Changed

  • Renamed the package to freezebase, to allow publication on
    PyPI under the same name. The import path, PyPI distribution name,
    FREEZEBASE_CACHE/FREEZEBASE_DATA environment variables, and the GitHub
    repository all changed accordingly; there is no compatibility shim for the old names.
  • s3_env reuses a cached AWSSession per distinct S3 configuration instead of
    building one per call. Constructing a session resolves boto's whole credential
    chain eagerly, and s3_env is entered on every raster operation, so a
    profile-authenticated path previously re-read the shared credentials file
    for every raster read and write. Refreshable STS/SSO credentials still rotate, because
    Rasterio re-freezes them on each Env entry; static credentials rewritten
    mid-process now need clear_aws_session_cache.
  • make_s3_upath rejects credentials in client_kwargs, which reach s3fs but
    not s3_env.