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.2.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for futhark-data-1.0.2.tar.gz
Algorithm Hash digest
SHA256 1493a156beb953790fe34f016c0e368db1860fac7eb5587e4cd86c62ff1b513d
MD5 6d0a97efadd229ab16afe94e959aeeb7
BLAKE2b-256 c071fdfda64ba7e3940e8065cab4cfc0398ee4dc9ca77957c16a7ab38745cd74

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for futhark_data-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7f901a75f58edfbda1d09ca9935adbdeeacfb6735fce9029d57b88fcdfcbe9e3
MD5 4e2ae28cefc18ab8e2f20988ac6cd3b6
BLAKE2b-256 eac0b2d021024fe9ebde67d1a4c7836ed256e42dd081a3e8b6bb7524c241482e

See more details on using hashes here.

Supported by

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