Skip to main content

A fast AEDAT4 decoder with an underlying Rust implementation

Project description

AEDAT is a fast AEDAT 4 python reader, with a Rust underlying implementation.

Run pip install aedat to install it.

Example

The aedat library provides a single class: Decoder. A decoder object is created by passing a file name to Decoder. The file name must be a path-like object.

import aedat

decoder = aedat.Decoder("/path/to/file.aedat")
print(decoder.id_to_stream())

for packet in decoder:
    print(packet["stream_id"], end=": ")
    if "events" in packet:
        print("{} polarity events".format(len(packet["events"])))
    elif "frame" in packet:
        print("{} x {} frame".format(packet["frame"]["width"], packet["frame"]["height"]))
    elif "imus" in packet:
        print("{} IMU samples".format(len(packet["imus"])))
    elif "triggers" in packet:
        print("{} trigger events".format(len(packet["triggers"])))

Process frames

Pillow (PIL)

import aedat
import PIL.Image # https://pypi.org/project/Pillow/

index = 0
for packet in decoder:
    if "frame" in packet:
        image = PIL.Image.fromarray(
            packet["frame"]["pixels"],
            mode=packet["frame"]["format"],
        )
        image.save(f"{index}.png")
        index += 1

OpenCV

import aedat
import cv2 # https://pypi.org/project/opencv-python/

index = 0
for packet in decoder:
    if "frame" in packet:
        image = packet["frame"]["pixels"]
        if packet["frame"]["format"] == "RGB":
            image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
        elif packet["frame"]["format"] == "RGBA":
            image = cv2.cvtColor(image, cv2.COLOR_RGBA2BGRA)
        cv2.imwrite(f"{index}.png", image)
        index += 1

Detailed example

This is the same as the first example, with detailed comments:

import aedat

decoder = aedat.Decoder("/path/to/file.aedat")
"""
decoder is a packet iterator with an additional method id_to_stream
id_to_stream returns a dictionary with the following structure:
{
    <int>: {
        "type": <str>,
    }
}
type is one of "events", "frame", "imus", "triggers"
if type is "events" or "frame", its parent dictionary has the following structure:
{
    "type": <str>,
    "width": <int>,
    "height": <int>,
}
"""
print(decoder.id_to_stream())

for packet in decoder:
    """
    packet is a dictionary with the following structure:
    {
        "stream_id": <int>,
    }
    packet also has exactly one of the following fields:
        "events", "frame", "imus", "triggers"
    """
    print(packet["stream_id"], end=": ")
    if "events" in packet:
        """
        packet["events"] is a structured numpy array with the following dtype:
            [
                ("t", "<u8"),
                ("x", "<u2"),
                ("y", "<u2"),
                ("on", "?"),
            ]
        """
        print("{} polarity events".format(len(packet["events"])))
    elif "frame" in packet:
        """
        packet["frame"] is a dictionary with the following structure:
            {
                "t": <int>,
                "begin_t": <int>,
                "end_t": <int>,
                "exposure_begin_t": <int>,
                "exposure_end_t": <int>,
                "format": <str>,
                "width": <int>,
                "height": <int>,
                "offset_x": <int>,
                "offset_y": <int>,
                "pixels": <numpy.array(shape=(height, width), dtype=uint8)>,
            }
        format is one of "L", "RGB", "RGBA"
        """
        print("{} x {} frame".format(packet["frame"]["width"], packet["frame"]["height"]))
    elif "imus" in packet:
        """
        packet["imus"] is a structured numpy array with the following dtype:
            [
                ("t", "<u8"),
                ("temperature", "<f4"),
                ("accelerometer_x", "<f4"),
                ("accelerometer_y", "<f4"),
                ("accelerometer_z", "<f4"),
                ("gyroscope_x", "<f4"),
                ("gyroscope_y", "<f4"),
                ("gyroscope_z", "<f4"),
                ("magnetometer_x", "<f4"),
                ("magnetometer_y", "<f4"),
                ("magnetometer_z", "<f4"),
            ]
        """
        print("{} IMU samples".format(len(packet["imus"])))
    elif "triggers" in packet:
        """
        packet["triggers"] is a structured numpy array with the following dtype:
            [
                ("t", "<u8"),
                ("source", "u1"),
            ]
        the source value has the following meaning:
            0: timestamp reset
            1: external signal rising edge
            2: external signal falling edge
            3: external signal pulse
            4: external generator rising edge
            5: external generator falling edge
            6: frame begin
            7: frame end
            8: exposure begin
            9: exposure end
        """
        print("{} trigger events".format(len(packet["triggers"])))

Because the lifetime of the file handle is managed by Rust, decoder objects are not compatible with the with statement. To ensure garbage collection, point the decoder variable to something else, for example None, when you are done using it:

import aedat

decoder = aedat.Decoder("/path/to/file.aedat")
# do something with decoder
decoder = None

Install from source

Local build (first run).

python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install maturin numpy
maturin develop  # or maturin develop --release to build with optimizations

Local build (subsequent runs).

source .venv/bin/activate
maturin develop  # or maturin develop --release to build with optimizations

After changing any of the files in framebuffers, one must run:

flatc --rust -o src/ flatbuffers/*.fbs

To format the code, run:

cargo fmt

Publish

  1. Bump the version number in Cargo.toml and pyproject.toml.

  2. Create a new release on GitHub.

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

aedat-2.2.0.tar.gz (5.1 MB view details)

Uploaded Source

Built Distributions

aedat-2.2.0-cp313-none-win_amd64.whl (271.0 kB view details)

Uploaded CPython 3.13Windows x86-64

aedat-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl (559.9 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

aedat-2.2.0-cp313-cp313-manylinux_2_28_x86_64.whl (496.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

aedat-2.2.0-cp313-cp313-macosx_14_0_arm64.whl (395.0 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

aedat-2.2.0-cp313-cp313-macosx_13_0_x86_64.whl (457.8 kB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

aedat-2.2.0-cp312-none-win_amd64.whl (271.0 kB view details)

Uploaded CPython 3.12Windows x86-64

aedat-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl (559.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

aedat-2.2.0-cp312-cp312-manylinux_2_28_x86_64.whl (496.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

aedat-2.2.0-cp312-cp312-macosx_14_0_arm64.whl (395.0 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

aedat-2.2.0-cp312-cp312-macosx_13_0_x86_64.whl (457.8 kB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

aedat-2.2.0-cp311-none-win_amd64.whl (270.9 kB view details)

Uploaded CPython 3.11Windows x86-64

aedat-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl (562.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

aedat-2.2.0-cp311-cp311-manylinux_2_28_x86_64.whl (498.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

aedat-2.2.0-cp311-cp311-macosx_14_0_arm64.whl (397.1 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

aedat-2.2.0-cp311-cp311-macosx_13_0_x86_64.whl (459.3 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

aedat-2.2.0-cp310-none-win_amd64.whl (271.1 kB view details)

Uploaded CPython 3.10Windows x86-64

aedat-2.2.0-cp310-cp310-musllinux_1_2_x86_64.whl (563.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

aedat-2.2.0-cp310-cp310-manylinux_2_28_x86_64.whl (499.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

aedat-2.2.0-cp310-cp310-macosx_14_0_arm64.whl (397.3 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

aedat-2.2.0-cp310-cp310-macosx_13_0_x86_64.whl (459.4 kB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

aedat-2.2.0-cp39-none-win_amd64.whl (271.6 kB view details)

Uploaded CPython 3.9Windows x86-64

aedat-2.2.0-cp39-cp39-musllinux_1_2_x86_64.whl (563.7 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

aedat-2.2.0-cp39-cp39-manylinux_2_28_x86_64.whl (499.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

aedat-2.2.0-cp39-cp39-macosx_14_0_arm64.whl (397.9 kB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

aedat-2.2.0-cp39-cp39-macosx_13_0_x86_64.whl (459.9 kB view details)

Uploaded CPython 3.9macOS 13.0+ x86-64

File details

Details for the file aedat-2.2.0.tar.gz.

File metadata

  • Download URL: aedat-2.2.0.tar.gz
  • Upload date:
  • Size: 5.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.8

File hashes

Hashes for aedat-2.2.0.tar.gz
Algorithm Hash digest
SHA256 a2e2d36745863c85ef6723f6a7ab90ed972808f07f3dd7cd7f66d9d54cb527a0
MD5 12d704c82749332073e33149f8f391df
BLAKE2b-256 6dd01fc188807639d3942ee7e5627eb6945ee39df6c51961422622119d133247

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp313-none-win_amd64.whl.

File metadata

  • Download URL: aedat-2.2.0-cp313-none-win_amd64.whl
  • Upload date:
  • Size: 271.0 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.8

File hashes

Hashes for aedat-2.2.0-cp313-none-win_amd64.whl
Algorithm Hash digest
SHA256 56aa339f7376a220ca74e64a74dbd4e569e498b9429c989e86111ac492e2a4e0
MD5 87adf8de947f1d69da7316fba2655398
BLAKE2b-256 bf9603bcb636036e09834911ec44c570d618ea6adde7a0e2222af809e25781f2

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ec276f8ab67e6da92e27b423ffbbf21c7eff1e02a271f0a47fcf58eff667a7ca
MD5 f4b8848e8e57d70c2d5caeb165e67a7b
BLAKE2b-256 acb66de7efded6ee397fc31e884928e19df5f97c7c537f247e63bff8b7c45d78

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a1e9f203d361610388d22ef8a1dc95a68606779a9873ea439e6c194426a47a99
MD5 a88c7c686995bda554b92efd3c87baa0
BLAKE2b-256 8f706f95cbaf3f63c041c1384aca72d4a8f5927c63fe98d3249b02e419395ec5

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 fcae9b7a346abf8a673d24c7d32d48c26ce89f0127f1ab4e9cde47af4577b84d
MD5 76801c61761838bbfd0d0254d78b7142
BLAKE2b-256 58fb2b83d7bc3187495280905d700d3043e846e5369b97501e91e38a0b7abaaa

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 d7907f82b6524d70b0e6497ea5c31350f64214e684a0a8b0c864f5c62f8bef23
MD5 816556cafb67043af7f36e8358853776
BLAKE2b-256 14120310b9dc3ceaaadd1f99c1c5b0e20b38cf19e28e52d9f1b6aa6999c74073

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp312-none-win_amd64.whl.

File metadata

  • Download URL: aedat-2.2.0-cp312-none-win_amd64.whl
  • Upload date:
  • Size: 271.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.8

File hashes

Hashes for aedat-2.2.0-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 ce2f252b2810978dc0c2750f4d016020f6cef2a5f4a459057dabc0e5ce5863d6
MD5 2782dfa33a723783981a14b88a82aed3
BLAKE2b-256 05628f6cc28e7405b9cc7bd1a5489f75792d4213bd9e1f9fdfc492ad2ee0b2d9

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 22cc7159373f1df9d3a3f178a9698658d44b1675a4d433a06979f37822f572af
MD5 f55311f2f855467c5e3239da3f040aff
BLAKE2b-256 5c3ffb1b00fa6f1b8c10b1095df2737510c661626c57920073d06fdc678867cd

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1e9aa64294a4e07432acf3498d6933df75f6911d45d8745d1b4f3c57fb7675ca
MD5 712df793ecdfecf6f8ad0f88de834acb
BLAKE2b-256 e53666538afa76961e3cc1dc8fe4ae1a83a3c4a0a9111dd6d426001c42f4f924

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f40695e88fee3a40636d20dbfed9f3d34e662c73f08b078b3e5224caa3947827
MD5 63e4661cbc3755c04c192566ad6ba7e4
BLAKE2b-256 6b5ee11cf88621d313b253eb18a6ddb8ed2cf47d5d766e806b62eee2e41143a0

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 80972c7567c24e5631912f13b6e5da7588b127d593830a090f5ef10b28147f1a
MD5 1dd424d92b3559669d9cbf8681a2a44d
BLAKE2b-256 83314a3deb0fa21b7a6bf659d98aaa60be201be8903555ecc8789c35854f3bcf

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp311-none-win_amd64.whl.

File metadata

  • Download URL: aedat-2.2.0-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 270.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.8

File hashes

Hashes for aedat-2.2.0-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 daa2d21149f9a8809c777ff3033b445f922dbfdbab2ccffe5686dad786afd837
MD5 fd69d98fcbfd770401642b9374cbb242
BLAKE2b-256 965274b6b918e150b87eeeb61c4cb65d70e8c3289922a1fdd4a6e2bcdc1027a1

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bf2c1489e39df2dba5ce297a41eb9df990e623d5bb5bac9bb271d69602177c75
MD5 abd16f0d88fc2f4641d0ab21b4865969
BLAKE2b-256 b0e9d4898706e48500c860343f30629889a2aaae8b49e41f94436878c2aae12c

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0c6e6d3c1aefd8648456ffa07d6d6a91d1fb839e715f6b79c1a7cc6c91a0bc7b
MD5 3a9dea0bc1c7d6d22162e0a54585d791
BLAKE2b-256 3a6d4878e9f558d8c544a01e937884a72b4d708b02aa6e33f2b02f7e284a7f1b

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 558bb8eb07312349f7b351bf07647e58ba2089e220379a5fd018083622e07a32
MD5 1c9d3062635ba3bee78cad7922791097
BLAKE2b-256 d11aa50a72da3dd8ca05d6eb2d98f493d14784df3865542f35f37c2e97618bc0

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 213c917421a8eb4a22eb88be79f806044ff20ea53f01856ad96ba03e411abfec
MD5 5a2f69f1309733844f609412223e4683
BLAKE2b-256 33268aaab34190c073ce90dc62e16a866238e9940ef377a1eb041c1b8667ce17

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp310-none-win_amd64.whl.

File metadata

  • Download URL: aedat-2.2.0-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 271.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.8

File hashes

Hashes for aedat-2.2.0-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 f62dcaf8df01df203ba6880038e4a8e4599c6b7c6f63a7648f7a6bafaf4e3548
MD5 777bb22a65a7eb7b0066d1abfcdc296f
BLAKE2b-256 19f0ef4af4cc35eac83e4c77e36c80b76f2135c7062d2b77832bdb82f682b520

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c6a139683e767d33997e3fcc53e9a25645039b3b00546edd73952581e30cf21c
MD5 28042145b6e86cfe88f7fcb142915581
BLAKE2b-256 5457bd70455937c072c1bfec8c0c266f582248de2df0f43bf3ebd3ae6fb7186c

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f9853f015ab083184e0890f269156bf36dc50fd973e24676001900f7602a58d7
MD5 89d591cef90aade6291fede6e5f8096f
BLAKE2b-256 688d6df891ce9c7bc3cac1bf7449cd88a9e2f14d7504b21d580391833cd49e84

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 486a7a2f948dcf193f3f55a9f83c4d92959168dad06ce1345dbc5987f2db3a5c
MD5 3a71bf9ff98d2d6a0a2484276b8bc552
BLAKE2b-256 712466711cd49ffffdaf01c282bc9e49bb67d5ec6a4cff839323a5d978262f80

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 f6dc3d6e6e053d54f5023d57f1b61cd38660cc4b6095f9a92c8d8e31359c4d17
MD5 17cd1e47e4d32c8a4246d99cb7089063
BLAKE2b-256 3f9f97dae1acbfe77d8adc0e20dea515d14e8cd299edb08425dc995d8a48cd27

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp39-none-win_amd64.whl.

File metadata

  • Download URL: aedat-2.2.0-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 271.6 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.8

File hashes

Hashes for aedat-2.2.0-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 207f3075a465881e339a7bcaaa40411fced0d5bf9b36e4048c44d3c955fb5919
MD5 603dc932cd74d8b21c04c634b3655050
BLAKE2b-256 e33e48ea3747a6d3bd87bc9e5b282878ddd0e10d682f0d9a08711f99f7438061

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 271a37e61ff26d0efd9c077c4e89f2fe808a72fc4f84ddb2b6e838ec21c1cb84
MD5 4a997d4b55f528f2f342531c0cc7097b
BLAKE2b-256 272ae4d4c25c759399c64d07865be8b2ef2aa354a1dacc89da5677fd974b958d

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 acf4aafaaa0d29c6a142622223df0ca6b9cf0f0f8e1da20dc5b0f3e321702f39
MD5 8cc431bca9d2b8b7b3277cc6bb31795e
BLAKE2b-256 0a1a0f0a6f912b33d7ae48a5947c64d888d2215bf906cb46bb5bff6ee958d8c8

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

  • Download URL: aedat-2.2.0-cp39-cp39-macosx_14_0_arm64.whl
  • Upload date:
  • Size: 397.9 kB
  • Tags: CPython 3.9, macOS 14.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.8

File hashes

Hashes for aedat-2.2.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8806b17773efc7773ccf2fb20a0ac1e7e68ce41fa5f2f35cf4140412e495048e
MD5 e3e49ab362345dd0f4a171c126c5512f
BLAKE2b-256 c6305d6e0e11840a62cfa813278035aa890b3eb075106252c378326f8ad7f08e

See more details on using hashes here.

File details

Details for the file aedat-2.2.0-cp39-cp39-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for aedat-2.2.0-cp39-cp39-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 4c44c1c6f8b463a4799e9e01f63af9a3df742494dbe37fe84f6facde5f7eee1c
MD5 74b7117d952f01fa711f3388fdbd08d3
BLAKE2b-256 fd2c3192b748fcbc2e04bfcadfcb819172e05ec7547ad5cd50c02e628b444c92

See more details on using hashes here.

Supported by

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