Skip to main content

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

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

ppfive

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 (ppfive vs pyfive)

ppfive 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

  • ppfive.File is registered as a pyfive.File virtual type (when pyfive is installed).
  • ppfive.Variable is registered as a pyfive.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, ppfive 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.
  • ppfive-specific extension API:
    • File.set_parallelism(thread_count=..., cat_range_allowed=...) is provided by ppfive and is not part of pyfive.

Practical expectation

If your code treats ppfive.File and ppfive.Variable as pyfive-like read objects, 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

ppfive-0.2.0.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.

ppfive-0.2.0-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

ppfive-0.2.0-cp314-cp314-macosx_11_0_arm64.whl (159.6 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

ppfive-0.2.0-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

ppfive-0.2.0-cp313-cp313-macosx_11_0_arm64.whl (159.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

ppfive-0.2.0-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

ppfive-0.2.0-cp312-cp312-macosx_11_0_arm64.whl (159.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

ppfive-0.2.0-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

ppfive-0.2.0-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 ppfive-0.2.0.tar.gz.

File metadata

  • Download URL: ppfive-0.2.0.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 ppfive-0.2.0.tar.gz
Algorithm Hash digest
SHA256 67548aa82a33c66228e251522af2696b761f4e158b1a84ad74e12dcd8acc70a7
MD5 23ec165dbbd590447c96c33180293b9f
BLAKE2b-256 066c5c9f2b20aafc98b3a1ce9d9a73705dffb2bc92a2f42b1425079f1546dbef

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.2.0.tar.gz:

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

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

File details

Details for the file ppfive-0.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ppfive-0.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ad52ddc81dde1f4ebcc3f7f2ce066251803975e3588dc8a095271af958f438c6
MD5 3857fc44daf30579e69d0d7d612b82bf
BLAKE2b-256 071c2c3900f28b22573edda2d52b24de3c240f4f18352f2cd687f7e6698407f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.2.0-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/ppfive

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

File details

Details for the file ppfive-0.2.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ppfive-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 99e90c24b441da5639033b72dfac06c943676941a3ba54c09b1cdb5b92e2ad57
MD5 fecf1797fe51ed83967eb04101366c8f
BLAKE2b-256 4746027e24b7c7194a5f27467d2eb75d7189821ed85a7ac230afe5c77645cdc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.2.0-cp314-cp314-macosx_11_0_arm64.whl:

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

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

File details

Details for the file ppfive-0.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ppfive-0.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c30a6871c3d5296d0c4bd463bd8e5720aad173f48b7924816b20b44ba5b94504
MD5 dcf7d58827d3b77c2978b311ea55b92c
BLAKE2b-256 6031cbae114c1be3f3671fe5027c50c6a2d86af813aec94a5c614d86f477e492

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.2.0-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/ppfive

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

File details

Details for the file ppfive-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ppfive-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 39a2f6c38c40a1d33a05f6ce90e523f1b5b4abbceabb1f2c9064a504a41fb32a
MD5 183465e09a785f0d27bd3bfd81f8b113
BLAKE2b-256 d38c8c5aa3c34a61b25386b55d69e4e779aca6f91c92fbf3a9afb157ac8880dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.2.0-cp313-cp313-macosx_11_0_arm64.whl:

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

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

File details

Details for the file ppfive-0.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ppfive-0.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 23a5313cacd80aa26e7ca5df738d3d11c991300f091a58afe7adbc9712a63097
MD5 a2635c1ed189568f9a92df2609581a88
BLAKE2b-256 549d2baa305d18db9be4d32ec5368b016a77b2d616b64ab63570db35408b7dc9

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.2.0-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/ppfive

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

File details

Details for the file ppfive-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ppfive-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c7b9a31a3d588e278ea83be092f64353e00290c6e886c929c23357253e1d1f41
MD5 171afb090a77af4d038e229ba0611506
BLAKE2b-256 cc07716e44c87e0f69fc431ab5b2b4dc586844119cba1c3a2c10e5cb683354f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.2.0-cp312-cp312-macosx_11_0_arm64.whl:

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

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

File details

Details for the file ppfive-0.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ppfive-0.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b6dcb822a858c79be8ce0b2f35f5699189108bb39dbcaa6621b8379479a51c12
MD5 bb279e4611de70cb7122a5475ce860e6
BLAKE2b-256 8ee3e3e2788fbecce69f11afe5a3087d0c8bf47111e2a4796f6c92fd35a99a4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.2.0-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/ppfive

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

File details

Details for the file ppfive-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ppfive-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 af318140a59cb6c76fad49af1b0e52685f4e8e559cbac01b005a9c051ac71969
MD5 705e32120f9d0ece51cb0b816a60ea4d
BLAKE2b-256 cf1d1d16ffbbe1516d30086f5654f4f4a58c78c5511eb2a19c5735a2ca485594

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.2.0-cp311-cp311-macosx_11_0_arm64.whl:

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

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