Skip to main content

PP/Fields reader with pyfive-style high-level API

Project description

umfive

A PP and Fields file reader that mimics relevant parts of the pyfive high-level API, with support for lazy metadata loading and parallel data loading when necessary.

This is NOT an alternative to pyfive, it is a package which makes pp and fields files look like and taste ("quack like") chunked HDF5 files written by a NetCDF library.

API Contract (umfive vs pyfive)

umfive is designed to be pyfive-compatible as far as likely users of pyfive would need such compatability. That is, it produces a chunk index (for kerchunk) if you really want that, and it supports all the information needed by CF/CFDM workflows to make pp-data as CF-compliant as possible.

For the canonical pyfive interface, see the pyfive docs:

What maps directly to pyfive

  • umfive.File is registered as a umfive.File virtual type (when umfive is installed).
  • umfive.Variable is registered as a umfive.Dataset virtual type.
  • File/root-level members expected by pyfive-style callers are present:
    • attrs, groups, variables, dimensions, name, path, parent
  • Mapping-style access works:
    • f["var"], iteration over variables, items(), len(f)
  • Dataset-like variable members needed by downstream consumers are present:
    • shape, dtype, ndim, size, attrs, chunks/chunk_shape, file, parent
    • slicing/indexing via __getitem__ (for example f["var"][:])
    • read_direct, astype(...), iter_chunks(...)

Like pyfive, umfive is read-only:

- `File(..., mode="r")` is supported; write/update modes are not.

Important differences from pyfive

  • No nested groups in PP/Fields model:
    • f["group/var"] is not supported.
    • groups exists for compatibility but is empty for current PP/Fields inputs.
  • get_lazy_view(...) fallback behavior:
    • pyfive-style API entry exists, but returns the normal variable view with an info log.
  • Some Dataset properties are intentionally placeholders (None) because they are not meaningful for PP/Fields records:
    • compression, compression_opts, shuffle, fletcher32, maxshape, fillvalue, dims, scaleoffset.
  • Compatibility metadata is synthesized for CF/cfdm bridging:
    • dimension-scale datasets and DIMENSION_LIST are created where needed.
    • rotated-grid helper variables (for example latitude, longitude, rotated_latitude_longitude) may be exposed when implied by UM headers.
  • umfive-specific extension API:
    • File.set_parallelism(thread_count=..., cat_range_allowed=...) is provided by umfive and is not part of pyfive.

Practical expectation

If your code treats umfive.File as a pyfive-like read object, common analysis workflows should work, including chunk-level access (PP records are treated as chunks).

Authorship

Key authors of this package are:

  • David Hassell (@davidhassell)
  • Alan Iwi (@alaniwi)
  • Bryan Lawrence (@bnlawrence)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

umfive-0.2.1.tar.gz (19.9 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

umfive-0.2.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (188.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

umfive-0.2.1-cp314-cp314-macosx_11_0_arm64.whl (159.6 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

umfive-0.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (188.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

umfive-0.2.1-cp313-cp313-macosx_11_0_arm64.whl (159.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

umfive-0.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (188.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

umfive-0.2.1-cp312-cp312-macosx_11_0_arm64.whl (159.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

umfive-0.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (188.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

umfive-0.2.1-cp311-cp311-macosx_11_0_arm64.whl (159.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file umfive-0.2.1.tar.gz.

File metadata

  • Download URL: umfive-0.2.1.tar.gz
  • Upload date:
  • Size: 19.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for umfive-0.2.1.tar.gz
Algorithm Hash digest
SHA256 eef343a62334ed5f3f4edb2ba3c4533e6a763a5a10fd38ea5c4f336086a56f36
MD5 03498f058443669cdbf7edb767a1cf94
BLAKE2b-256 d880e9d8d9dcaa2f7a0847dc7c6685f4465fec6cd95aaccd491d821cd822e088

See more details on using hashes here.

Provenance

The following attestation bundles were made for umfive-0.2.1.tar.gz:

Publisher: build-and-deploy-wheels-on-pypi.yml on NCAS-CMS/umfive

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file umfive-0.2.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for umfive-0.2.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9939485349358db5c66e968dc0370e08443554f9a872c9137c5cefa0a11c4ad1
MD5 ea4eb67358ce1a7e36f2fcbcb13e7025
BLAKE2b-256 7b9580da53c87531e708431f439e0d63e4d34f2bd206fccd1804ccc1f45aba71

See more details on using hashes here.

Provenance

The following attestation bundles were made for umfive-0.2.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build-and-deploy-wheels-on-pypi.yml on NCAS-CMS/umfive

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file umfive-0.2.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for umfive-0.2.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a2aba437d3a99b0cf531514bd4c85a30044414b27282c3f5c2afd999199665cb
MD5 b5701dcb4e2b0ee2037a1857336e1cbf
BLAKE2b-256 5e0bbad0dd9f23f259d79f0a541717a66ab8c4847c61350dc9e4971768058e68

See more details on using hashes here.

Provenance

The following attestation bundles were made for umfive-0.2.1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: build-and-deploy-wheels-on-pypi.yml on NCAS-CMS/umfive

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file umfive-0.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for umfive-0.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e7a15d83c0fadbdc60cd3de330f91412b03a679a7a847c65b2d05cf261e401fa
MD5 08fd1b29e6a410b43a921bdcd1fc01dc
BLAKE2b-256 cb898bcf3d24d6ac4b680022c62ee3ae9fdbd0ae6d31306b296ff6c9e71f37be

See more details on using hashes here.

Provenance

The following attestation bundles were made for umfive-0.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build-and-deploy-wheels-on-pypi.yml on NCAS-CMS/umfive

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file umfive-0.2.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for umfive-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 68982d67e3fd4a2726dd7a5522cdbae645d4a65b2c76780253360bf26b964044
MD5 a5c417aa543e2521bda39ed6503be695
BLAKE2b-256 185e9f2490833230552da9d498b012c550a40067aed4088cd294eb3067120bf3

See more details on using hashes here.

Provenance

The following attestation bundles were made for umfive-0.2.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: build-and-deploy-wheels-on-pypi.yml on NCAS-CMS/umfive

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file umfive-0.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for umfive-0.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b16bae8637cecc9c79265707305e18969f2eb33b3d941d2010caffe600ba70b5
MD5 2e86d021cdda5ad2b0e2e61bbcaf0492
BLAKE2b-256 abf3fac9d14c89c21b87bfa0335719ddb57be2e035bd8626960778e0a348815e

See more details on using hashes here.

Provenance

The following attestation bundles were made for umfive-0.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build-and-deploy-wheels-on-pypi.yml on NCAS-CMS/umfive

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file umfive-0.2.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for umfive-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 29205b94020e5aa6a7230c339da2f309db8f5b1a6bc3c9df33b117afe1276104
MD5 aa8ac03c23e9360133dead03cf0ac396
BLAKE2b-256 745b9ec5c78188c79c302f9b4bad70c08c596cfb0276a3328d231581eba33dd8

See more details on using hashes here.

Provenance

The following attestation bundles were made for umfive-0.2.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: build-and-deploy-wheels-on-pypi.yml on NCAS-CMS/umfive

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file umfive-0.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for umfive-0.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5de5e480c20e76f2a97721a97787951d88cdc0dedfd3199f4c679fef573bbe7c
MD5 900fa6c83a2f70198a3a1fc8dae5d36a
BLAKE2b-256 131795acd9d9b89203d6f59c49dd2dfd47964fe3683b93dbab470669c9dd8604

See more details on using hashes here.

Provenance

The following attestation bundles were made for umfive-0.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build-and-deploy-wheels-on-pypi.yml on NCAS-CMS/umfive

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file umfive-0.2.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for umfive-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 97565c1471c213f4c946fef001cb53ffe5aeaab11b61de9e31ca77ac3f87483e
MD5 5fbea3f95d6278b2189ebf88f832707e
BLAKE2b-256 b9f0626c1291d31d61138b49334240df687e30816250506c7b693ed3e42f1889

See more details on using hashes here.

Provenance

The following attestation bundles were made for umfive-0.2.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: build-and-deploy-wheels-on-pypi.yml on NCAS-CMS/umfive

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page