Skip to main content

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

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, external, is_virtual.
  • 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.1.1.tar.gz (19.7 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.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (145.8 kB view details)

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

ppfive-0.1.1-cp314-cp314-macosx_11_0_arm64.whl (116.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

ppfive-0.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (145.6 kB view details)

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

ppfive-0.1.1-cp313-cp313-macosx_11_0_arm64.whl (116.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

ppfive-0.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (145.6 kB view details)

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

ppfive-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (116.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

ppfive-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (145.8 kB view details)

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

ppfive-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (116.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file ppfive-0.1.1.tar.gz.

File metadata

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

File hashes

Hashes for ppfive-0.1.1.tar.gz
Algorithm Hash digest
SHA256 919a01a92737b22be743d44a7259a02ab96cae3223df97aaf59b8d7f90c54d92
MD5 236173b4b2ca77082e3dd1b4109dc9be
BLAKE2b-256 d506c60d9146bf0eb21cf33dc5351d0a9ce335c915aa97cfd1a29029f7bffccc

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.1.1.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.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ppfive-0.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f94d57b38628940a0508364985dbcc6244affa6ede29b2964de338333e3eccbb
MD5 c7d7d4cbfdef9faf30a3c03fe3837c19
BLAKE2b-256 428e092a3dcb122629cf67aca5a31d83dfc50ca6804b589c2a5f6a8e4dabaaa7

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.1.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/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.1.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ppfive-0.1.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0368d6d07a5f9b9916bede1d92dde60d9f4e8c46db808c0e86bc4fb632a1962e
MD5 053530d821b0e8f35f9a05b5db800ad9
BLAKE2b-256 0318bb1d05c2ca8341ca80b0b20cda2857a5cd67f5f78e8fc8778189b595dc6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.1.1-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.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ppfive-0.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 507dc52ed24b574cc8bb5d4f5748ecf4c57dc60ea213ed0860ebd6d8d8b3bb02
MD5 75a2f3e1dc1a92b3ab017207643c1e2a
BLAKE2b-256 4bf31428b6172067d75d5f033882e0bec1cc32af47efdbb89406fe1d0dbc2205

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.1.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/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.1.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ppfive-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 82a468c828622b9f7c868f5c4c6cfb331ca9cc40281e4fc4caf4b0ba5d36c70b
MD5 972ac0c7ff4b7d0b305c41ee02579707
BLAKE2b-256 2258fd9c44f3f1795f71adf86bec80cca03610d88ae225af0689af9127e083a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.1.1-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.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ppfive-0.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5bfec373358e0e7e18146bb59cac504c2300302bbdcc81b06421766af2a13be2
MD5 d6bd075d03bdb6882b32925bbc31bf09
BLAKE2b-256 f55be3e5814a0e22a7439c74a761ba43f08e4986ed3dd492b314e3fa0762e576

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.1.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/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.1.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ppfive-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4fa61c5307dc74ec38b81ba04f6e3c2ae6ae7d2426ad7c2f8f628cbe5dfbb376
MD5 60f9b61358659cf891af38043b1019a6
BLAKE2b-256 f9b3eeb553ef022a4014674ab26508a692cbc25efab9a992fc2a46dab7df7eeb

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.1.1-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.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ppfive-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1c086cb7c6d1275407116ab576580ea48d0c79c78d2d7da45bb671e0fc406398
MD5 2f24dae4d93230982ebd766ac7eb5e06
BLAKE2b-256 03a4fa177a3e2dc31063c47801b79bafda69f17eabaeac6eb348a4912aa86dd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for ppfive-0.1.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/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.1.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ppfive-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2cbe6ee25b5300e6eb608c87bce44c2efa7bf70d9c581e5f934a95fac02c6bef
MD5 d1335422c49c4ae3bcf904a1bbc21d30
BLAKE2b-256 403fa911c6a01441a9b580ec0d7e2ba4f0516346fca3003a4bb189b715daa653

See more details on using hashes here.

Provenance

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