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)
: Dumpv
, which must be a Numpy value, to the file-like objectf
. The parameterbinary
indicates whether to use binary data format. IfNone
, decide based on the type off
. -
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 objectf
. -
loads(s)
: Load all values from the strings
. -
loadb(b)
: Load all values from the byte sequenceb
.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1493a156beb953790fe34f016c0e368db1860fac7eb5587e4cd86c62ff1b513d |
|
MD5 | 6d0a97efadd229ab16afe94e959aeeb7 |
|
BLAKE2b-256 | c071fdfda64ba7e3940e8065cab4cfc0398ee4dc9ca77957c16a7ab38745cd74 |
File details
Details for the file futhark_data-1.0.2-py3-none-any.whl
.
File metadata
- Download URL: futhark_data-1.0.2-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f901a75f58edfbda1d09ca9935adbdeeacfb6735fce9029d57b88fcdfcbe9e3 |
|
MD5 | 4e2ae28cefc18ab8e2f20988ac6cd3b6 |
|
BLAKE2b-256 | eac0b2d021024fe9ebde67d1a4c7836ed256e42dd081a3e8b6bb7524c241482e |