Skip to main content

Reading and writing Futhark data files

Project description

Python implementation of the Futhark data format

This is a small Python library that implements reading and writing of the textual and binary data format used by Futhark executables and test tools. It is intended to make it easy to write Python scripts that use Python libraries to convert complex formats (e.g. images, audio) into Futhark test data. It provides functions that convert between Numpy values and textual/binary representations in the Futhark formats. Comments are supported. Beware: reading and writing the textual data format is very slow. Use the binary format for all arrays of more than a few hundred elements.

The following Numpy types are supported: np.int8, np.int16, np.in32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64, np.float32, np.float64, np.bool_, as well as up to 255-dimensional arrays containing elements of these sizes.

Installation

$ pip install --user futhark-data

API

Serialising

  • dump(v, f, binary=None): Dump v, which must be a Numpy value, to the file-like object f. The parameter binary indicates whether to use binary data format. If None, decide based on the type of f.

  • dumps(v): Returns the argument in the textual data format.

  • dumpb(v): Returns the argument in the binary data format.

Deserialising

  • load(f): Load all values from the file-like object f.

  • loads(s): Load all values from the string s.

  • loadb(b): Load all values from the byte sequence b.

Since a file (or str, or bytes) can contain any number of Futhark values, the functions above all return generators. Use next if you know for sure there is just a single value, and you want it (see example below).

The functions automatically detect whether the data is encoded using the binary or textual format, so there is no need for the caller to specify.

Examples

>>> import futhark_data
>>> for x in futhark_data.loads('[1,2,3] [4,5,6]'):
...     print(x)
...
[1 2 3]
[4 5 6]
>>> futhark_data.dumpb(next(futhark_data.loads('[1,2,3]')))
b'b\x02\x01 i32\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00'

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

futhark-data-1.0.3.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

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

futhark_data-1.0.3-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file futhark-data-1.0.3.tar.gz.

File metadata

  • Download URL: futhark-data-1.0.3.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for futhark-data-1.0.3.tar.gz
Algorithm Hash digest
SHA256 1e8c5e48b5edd81d57dcf6667d99a720e8a92de7386dadd591404bb598553cf5
MD5 08b269ca5662e02e973b53096af7361d
BLAKE2b-256 0bc54148152fe9fe664d30261ba933bb6e88c453d305df8b84b8be92808b275f

See more details on using hashes here.

File details

Details for the file futhark_data-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: futhark_data-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for futhark_data-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0719ba76adf5e0fd2148fd4af2b6cd273a4844a8d78ca7798d39620492efd941
MD5 bbd2fe44fddbe6db5bf1a54f4a8046d6
BLAKE2b-256 8fc2fd10a54dae96887b4e4cfa4049dfd25d94f5c90ef0622702e1c5f4a438ae

See more details on using hashes here.

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