Read and write Event Stream (.es) files
Project description
Event Stream
This repository contains an Event Stream Python reader implemented in C++, as well as Matlab bindings.
Python
pip3 install event_stream
Documentation
The event_stream
library provides three classes: Decoder
, IndexedDecoder
and Encoder
:
Decoder
reads constant-size byte buffers from an Event Stream file and returns variable-size event buffersIndexedDecoder
reads the entire file when created (without storing events in memory) to build an index, and can be used to fetch events at arbitrary timestampsUdpDecoder
reads event-stream encoded UDP packets (each packet must start with a uint64 little-endian absolute timestamp then contain an ES compliant stream)Encoder
writes event buffers to a file
Use Decoder
if you want to process every event without delay. Use IndexedDecoder
if you need to move back and forth while reading the file, for example if your are writing a file player with a clickable timeline.
The first argument to Decoder
, IndexedDecoder
and Encoder
is a file name. It must be a path-like object. IndexedDecoder
takes a second argument, the keyframe duration in µs. Encoder
takes three other arguments, the evvent type and the sensor's width and height.
All three classes are contexts managers compatible with the with
operator.
The detailed documentation for each class consists in a commented example (see below). There are more examples in the examples directory. Run examples/download.py first to download the media files used by the example scripts (12.8 MB).
Decoder
import event_stream
# Decoder's only argument is an Event Stream file path
# decoder is an iterator with 3 additional properties: type, width and height
# type is one of 'generic', 'dvs', 'atis' and 'color'
# if type is 'generic', both width and height are None
# otherwise, width and height represent the sensor size in pixels
decoder = event_stream.Decoder('/path/to/file.es')
if decoder.type == 'generic':
print('generic events')
else:
print(f'{decoder.type} events, {decoder.width} x {decoder.height} sensor')
# chunk is a numpy array whose dtype depends on the decoder type:
# generic: [('t', '<u8'), ('bytes', 'object')]
# dvs: [('t', '<u8'), ('x', '<u2'), ('y', '<u2'), (('on', 'p'), '?')]
# atis: [('t', '<u8'), ('x', '<u2'), ('y', '<u2'), (('exposure', 'e'), '?'), (('polarity', 'p'), '?')]
# color: [('t', '<u8'), ('x', '<u2'), ('y', '<u2'), ('r', '?'), ('g', '?'), ('b', '?')]
# chunk always contains at least one event
for chunk in decoder:
print('{} events, ts = [{} µs, {} µs]'.format(len(chunk), chunk['t'][0], chunk['t'][-1]))
IndexedDecoder
import event_stream
# IndexedDecoder's first argument is an Event Stream file path
# its second argument is the duration of each keyframe in µs
# the first keyframe starts with the first event
# all the keyframes are offset accordingly
# decoder is an object with 3 properties: type, width and height
# type is one of 'generic', 'dvs', 'atis' and 'color'
# if type is 'generic', both width and height are None
# otherwise, width and height represent the sensor size in pixels
# decoder has two methods: keyframes and chunk
decoder = event_stream.IndexedDecoder('/path/to/file.es', 40000)
if decoder.type == 'generic':
print('generic events')
else:
print(f'{decoder.type} events, {decoder.width} x {decoder.height} sensor')
# number of generated keyframes (one every 40000 µs here)
keyframes = decoder.keyframes()
for keyframe_index in range(0, keyframes):
# keyframe_index must be in the range [0, keyframes[
# the returned events have timestamps in the range
# [keyframe_index * T, (keyframe_index + 1) * T[
# where T is the second argument passed to IndexedDecoder
# chunk is a numpy array whose dtype depends on the decoder type:
# generic: [('t', '<u8'), ('bytes', 'object')]
# dvs: [('t', '<u8'), ('x', '<u2'), ('y', '<u2'), (('on', 'p'), '?')]
# atis: [('t', '<u8'), ('x', '<u2'), ('y', '<u2'), (('exposure', 'e'), '?'), (('polarity', 'p'), '?')]
# color: [('t', '<u8'), ('x', '<u2'), ('y', '<u2'), ('r', '?'), ('g', '?'), ('b', '?')]
# chunk may be empty
chunk = decoder.chunk(keyframe_index)
if len(chunk) > 0:
print('{} / {}, {} events, ts = [{} µs, {} µs]'.format(
keyframe_index + 1,
keyframes,
len(chunk),
chunk['t'][0],
chunk['t'][-1]))
else:
print('{} / {}, 0 events'.format(keyframe_index + 1, keyframes))
UdpDecoder
import event_stream
# UdpDecoder's only argument is the port to which to bind
# decoder is an iterator with 3 additional properties: type, width and height
# type is one of 'generic', 'dvs', 'atis' and 'color'
# if type is 'generic', both width and height are None
# otherwise, width and height represent the sensor size in pixels
# The additional properties are updated everytime a packet is received
decoder = event_stream.UdpDecoder(12345)
# chunk is a numpy array whose dtype depends on the packet type:
# generic: [('t', '<u8'), ('bytes', 'object')]
# dvs: [('t', '<u8'), ('x', '<u2'), ('y', '<u2'), ('on', '?')]
# atis: [('t', '<u8'), ('x', '<u2'), ('y', '<u2'), ('exposure', '?'), ('polarity', '?')]
# color: [('t', '<u8'), ('x', '<u2'), ('y', '<u2'), ('r', '?'), ('g', '?'), ('b', '?')]
for chunk in decoder:
print('{} events, ts = [{} µs, {} µs]'.format(len(chunk), chunk['t'][0], chunk['t'][-1]))
Encoder
# Encoder's first argument is an Event Stream file path
# its second argument is the event type, one of 'generic', 'dvs', 'atis' and 'color'
# its third and fourth arguments are the sensor's width and height in pixels
# The width and height are ignored if type is 'generic'
encoder = event_stream.Encoder('/path/to/file.es', 'dvs', 1280, 720)
# write adds an event buffer to the file
# the events must be sorted in order of increasing timestamp
# the chunk passed to write must be a structured numpy array whose dtype depends on the event type:
# generic: [('t', '<u8'), ('bytes', 'object')]
# dvs: [('t', '<u8'), ('x', '<u2'), ('y', '<u2'), ('on', '?')]
# atis: [('t', '<u8'), ('x', '<u2'), ('y', '<u2'), ('exposure', '?'), ('polarity', '?')]
# color: [('t', '<u8'), ('x', '<u2'), ('y', '<u2'), ('r', '?'), ('g', '?'), ('b', '?')]
first_chunk = numpy.array([
(0, 50, 100, True),
(100, 1203, 641, False),
(200, 73, 288, False),
(300, 901, 99, True),
], dtype=[('t', '<u8'), ('x', '<u2'), ('y', '<u2'), ('on', '?')])
encoder.write(first_chunk)
# for convenience, event_stream provides dtype constants:
# generic_dtype, dvs_dtype, atis_dtype and color_dtype
second_chunk = numpy.array([
(400, 50, 100, True),
(400, 1203, 641, False),
(401, 73, 288, False),
(401, 901, 99, True),
], dtype=event_stream.dvs_dtype)
encoder.write(second_chunk)
Matlab
Setup
After downloading this repository (zip file), run the following commands in Matlab:
cd /path/to/event_stream
cd matlab
mex event_stream_decode.cpp
mex event_stream_encode.cpp
mex event_stream_udp.cpp
The generated files (extension .mexa64
, .mexmaci64
or .mexw64
depending on your operating system) can be placed in any directory. They contain the functions event_stream_decode
, event_stream_encode
and event_stream_udp
. You can remove the rest of the repositrory from your machine if you want.
Documentation
event_stream_decode
event_stream_decode
reads events from a file.
[header, events] = event_stream_decode('/path/to/file.es');
header =
struct with fields:
type: 'dvs'
width: 320
height: 240
events =
struct with fields:
t: [473225×1 uint64]
x: [473225×1 uint16]
y: [473225×1 uint16]
on: [473225×1 logical]
header
is a struct with at least one field, type
. header.type
is either 'generic'
, 'dvs'
, 'atis'
or 'color'
. Unless header.type
is 'generic'
, header
has two extra fields, width
and height
. They encode the sensor size in pixels.
events
is a struct whose fields are numerical arrays of equal length. Each array encodes one property of the events in the file (for example the timestamp t
). The number of fields and their names depend on header.type
:
'generic'
:t: [n×1 uint64]
bytes: [n×1 string]
'dvs'
:t: [n×1 uint64]
x: [nx1 uint16]
y: [nx1 uint16]
on: [nx1 logical]
'atis'
:t: [n×1 uint64]
x: [nx1 uint16]
y: [nx1 uint16]
exposure: [nx1 logical]
polarity: [nx1 logical]
'color'
:t: [n×1 uint64]
x: [nx1 uint16]
y: [nx1 uint16]
r: [nx1 uint8]
g: [nx1 uint8]
b: [nx1 uint8]
event_stream_encode
event_stream_encode
writes events to a file. The fields names and types must match those returned by event_stream_decode
.
header = struct(...
'type', 'dvs',...
'width', uint16(320),...
'height', uint16(240))
events = struct(...
't', uint64([100; 200; 300]),...
'x', uint16([303; 4; 42]),...
'y', uint16([105; 201; 6]),...
'on', logical([true; true; false]))
event_stream_encode('/path/to/file.es', header, events);
event_stream_udp
udp_receiver = udpport(
"datagram",
"IPV4",
"LocalPort", 12345,
"EnablePortSharing", true,
"Timeout", 3600
);
while true
packet = read(udp_receiver, 1, "uint8");
[header, events] = event_stream_udp(packet.Data)
end
header
and events
have the same structure as the data returned by event_stream_decode.
Contribute
To format the code, run:
clang-format -i sepia.hpp python/*.cpp matlab/*.cpp
Publish
-
Bump the version number in setup.py.
-
Create a new release on GitHub.
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 Distributions
File details
Details for the file event_stream-1.6.3.tar.gz
.
File metadata
- Download URL: event_stream-1.6.3.tar.gz
- Upload date:
- Size: 23.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5ba0297bf81109294997673e1a9ad9835f75d6d7eabe92f16f1a3c176cbe944 |
|
MD5 | 8a5de1ee85a44d2ba1d0e2d04adf6a65 |
|
BLAKE2b-256 | b8a31237171a7a39eda68d09fde10cc409bdcb3362d30303ef69ed53a16798bb |
File details
Details for the file event_stream-1.6.3-cp312-cp312-win_amd64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 53.5 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fe9150d0d6a951bc75b729a40aaa84085695531df73e87cd7447c3db9a14c41 |
|
MD5 | fc17fa9dd47e6878322dee7e861cf77a |
|
BLAKE2b-256 | 03b43664c5c62bd1a462a80bbb39f65b594df11e42730a7547205a8b0e175dc8 |
File details
Details for the file event_stream-1.6.3-cp312-cp312-win32.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp312-cp312-win32.whl
- Upload date:
- Size: 51.6 kB
- Tags: CPython 3.12, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a67a7719a32ac50894423490e121548c5101c33975f4a5ef69a5e6252e24a514 |
|
MD5 | 392831d9595d8a3563a7afcd78a54d0c |
|
BLAKE2b-256 | 60b38d746e0c73b9e28c3e489ba76d5203f1760b0dd34a71a51826c7fe23881c |
File details
Details for the file event_stream-1.6.3-cp312-cp312-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e40b3b59c5ebdcfb000394473dc390500d7ca88e002a89d381ae7e2102a6fc0f |
|
MD5 | 3d95ed6d0937c9cdee5c98c02cba1bff |
|
BLAKE2b-256 | b020779ba344ba0b7b7f433849c2cca232598a83de98053d35288d9d800ad353 |
File details
Details for the file event_stream-1.6.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 747.5 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d24a9bb86260adfdd6c13ebb6bee89923f09a9eaae20bc56cab74eccb16331ed |
|
MD5 | 11ec2df30ae6232f8d31aa7aa61f5501 |
|
BLAKE2b-256 | 11a6fa5ff5e0279fd50c0792720ed279461994dd8f0611b3fb3ae8093567f618 |
File details
Details for the file event_stream-1.6.3-cp312-cp312-macosx_11_0_arm64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 56.8 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39d502555a279a3a77b7d60e665e374731ad48aa67893544c6876385a94788de |
|
MD5 | 93ef0ce518cf3412c90361e7e307f4fc |
|
BLAKE2b-256 | 63904b79452fff921a5bb4c3241564d6b6d49805f915bff661e170a97fdde5d6 |
File details
Details for the file event_stream-1.6.3-cp312-cp312-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp312-cp312-macosx_10_9_x86_64.whl
- Upload date:
- Size: 62.0 kB
- Tags: CPython 3.12, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5cc5bd3acaaea57259d9fb3fab8acca4c30d20839066d69bd6839fe9a795e8fe |
|
MD5 | 7819dca04461a1703cb9a9bd8e7e1115 |
|
BLAKE2b-256 | d4dc822c17bc2dadd8cbca8347728dfdce2e171008f892bb5bc1dacb2346a6b2 |
File details
Details for the file event_stream-1.6.3-cp311-cp311-win_amd64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 53.5 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82740cbdd3f3afac02defc82f21a4cddf11455d240d672ca61090895ee4bb393 |
|
MD5 | ba3f12326dd664a150d6c0f837487145 |
|
BLAKE2b-256 | a2d60d14a4f88c2918097eaed1da57306da7bca104976631c022a9cb414ba506 |
File details
Details for the file event_stream-1.6.3-cp311-cp311-win32.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp311-cp311-win32.whl
- Upload date:
- Size: 51.5 kB
- Tags: CPython 3.11, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c25e929dbced9f1f145ba098a5571734d1e375119f459bf747ff25c4ca56c7b |
|
MD5 | e1458641f15e05776fbd4e5d703f2063 |
|
BLAKE2b-256 | 7352693d51ab2843fce39a3de67c934e14d89ee5e25ebe012b63d903d3fc17c9 |
File details
Details for the file event_stream-1.6.3-cp311-cp311-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3888254349ad5c03b045ff3ae0e5a21f769e45175e3fc338da63f55e5fd333e |
|
MD5 | 273c7dd7c2667907ee4c5adc603e9817 |
|
BLAKE2b-256 | 198fba139bf9f34e529d81355cf911bdcf19676a48e57743f7d5d142f5464488 |
File details
Details for the file event_stream-1.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 744.1 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc7f3a4fa33c619f995b822927b28ec14a4eeff1377e077c0c52d61977e06788 |
|
MD5 | 6a67322aaf53c04f7eac744b1e85673a |
|
BLAKE2b-256 | c62d77ccb6b8e6639d35c6973382a58f5de4b132724f1f6917446d613a059d82 |
File details
Details for the file event_stream-1.6.3-cp311-cp311-macosx_11_0_arm64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 56.7 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2490f8d560d81af38be07417761253619a3cf7af6775c80570300d42184ebc52 |
|
MD5 | b8a6db5d77b7238f2ba60c1ced85f887 |
|
BLAKE2b-256 | ca5c25fc461e4c8824b8fa2da196519902e2be07b1a34a7188ae6150ba64fc4b |
File details
Details for the file event_stream-1.6.3-cp311-cp311-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp311-cp311-macosx_10_9_x86_64.whl
- Upload date:
- Size: 61.8 kB
- Tags: CPython 3.11, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c2eab33ef25be77156102f99fe40296249d8d6526066ecd76887933ce2a533d |
|
MD5 | 256b4365f87b2c772be03add9ad43b49 |
|
BLAKE2b-256 | e508c727e9282647c1b1e0852b5a27b47622cfeac10ef05b3c35c9d601948fc9 |
File details
Details for the file event_stream-1.6.3-cp310-cp310-win_amd64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 53.5 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4b45841f8696230f7a1ea2ba56b70ee18ca4a2ba10ad209a3949ea1256e22fe |
|
MD5 | 222db5ca014122581e821fb8ed527c55 |
|
BLAKE2b-256 | 721ceac11924524b9dfc38d404b4406d33fb82528dc492da24283eba67835c1d |
File details
Details for the file event_stream-1.6.3-cp310-cp310-win32.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp310-cp310-win32.whl
- Upload date:
- Size: 51.5 kB
- Tags: CPython 3.10, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dfbfd9c79dc2bc7737bd7d34ba3ee4183299cd1d693d0511bb9e0380d146cd42 |
|
MD5 | 14714e64c30172174909c0f36f628ead |
|
BLAKE2b-256 | b07134949e9811abd1eca803ba50ba55e2c1bfb7a40f219d994455798f8a3ca0 |
File details
Details for the file event_stream-1.6.3-cp310-cp310-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e77e29a12e9a628ad20eaf0fae7dd654db1e80a5b65e76bb3449ed357abf9c29 |
|
MD5 | 88309d5fe0f860acdbf497d108a57f62 |
|
BLAKE2b-256 | 0138d04bd2f39f3e38182cbbd4af9a9869f809541558174e80e4d7a30a277c8b |
File details
Details for the file event_stream-1.6.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 743.5 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 661e83e89a06931af823e34ae2b76f70b8c55327900f77f82bddd45a92b2f56d |
|
MD5 | 9cb729d6c2a5846d8e8f900df6921e82 |
|
BLAKE2b-256 | d6044fe41fc2b3105a353f492ca71a369162d336d40bea8fc159a92894a7ce25 |
File details
Details for the file event_stream-1.6.3-cp310-cp310-macosx_11_0_arm64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 56.7 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53f89530cbacdc0dbb3fe0d929cb65165aa1529b6db1d3e1ec8af5a9019e8d93 |
|
MD5 | 2f3f0e48baacc4e498358e2a700c80c9 |
|
BLAKE2b-256 | f3f470b00b2ef38839da014dc88c9521b9ff242467fc081ce39e1c23889954cb |
File details
Details for the file event_stream-1.6.3-cp310-cp310-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 61.8 kB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f861091f6c14c81bcb104e35fef95ca8e6ba58dfc256a10fce021eab1bd1934 |
|
MD5 | 86c9cef3dcd43d0455ab9cb55e299b59 |
|
BLAKE2b-256 | 3a9aa050eef9f735c383f5e75636d94253024ec3e6efce57a5c6b9cc5ba08a97 |
File details
Details for the file event_stream-1.6.3-cp39-cp39-win_amd64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 53.5 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc0079f562470dfb552df03801ab08a2f1620d02a2a96ce1244f5958b61b2a0f |
|
MD5 | 4a48795736a60426c5bff813caa2441d |
|
BLAKE2b-256 | 608128688992ce9071516e695d884c7b0f0dd77547d95f7147e8c4260c649956 |
File details
Details for the file event_stream-1.6.3-cp39-cp39-win32.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp39-cp39-win32.whl
- Upload date:
- Size: 51.5 kB
- Tags: CPython 3.9, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f48587662c00b6a3daf283f4388c2a03308508ac36acfce1b7f2049e45d3d171 |
|
MD5 | bd9f6c276ac3c5ae324eccbbe8336b46 |
|
BLAKE2b-256 | 7e5ec3f48c0a530bac2504eff109cc5bd9653b9f0d473f30ea9df49a51210ae3 |
File details
Details for the file event_stream-1.6.3-cp39-cp39-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp39-cp39-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.9, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8d3db5c7053e251f3298fdeba4c55499abddeb32870df4d5c082b6135b5693c |
|
MD5 | 85d580120eed67c9519a3914bd177ce3 |
|
BLAKE2b-256 | 56749a9c15ae7a2a6ed67ea20311be67646ee85921ae22cd99e32c6b4559284d |
File details
Details for the file event_stream-1.6.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 743.4 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fd66495b7901ef622f36e86fdeb8c96715cd690c1fe7170d2204a81bb89119d |
|
MD5 | 5e54badd6742277f0a95592fe0f1f9d4 |
|
BLAKE2b-256 | 898ac0f0e994c7d0697609d867792b26b5dfeb4a4904767bac3d6556a597cb5b |
File details
Details for the file event_stream-1.6.3-cp39-cp39-macosx_11_0_arm64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 56.7 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d06b0e7ec9e37af5d1aeec3f09697f8635b53556a5374875d164acf9b017c4a |
|
MD5 | 591880a62665c537db8dc1a1711040a5 |
|
BLAKE2b-256 | 4c49b180108a705d40185098404c9d3dad1254d767c80f4904e24341e140bd9b |
File details
Details for the file event_stream-1.6.3-cp39-cp39-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp39-cp39-macosx_10_9_x86_64.whl
- Upload date:
- Size: 61.8 kB
- Tags: CPython 3.9, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0375557f746eafeb51948294e95439603d70b3f8ddb2afb6a4d2e98cb07284e8 |
|
MD5 | 4993760a9461f93d13c00ed7a2db3bb2 |
|
BLAKE2b-256 | 5180fc90f5f13581c47ee942bb8ae7adebdcb3e10f2235c0a05487706fe1355d |
File details
Details for the file event_stream-1.6.3-cp38-cp38-win_amd64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 53.4 kB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dda97e036f0a485af2dc79d69709ddec14e85a202242e49e4baee301e026dbbf |
|
MD5 | 4c119d0bf7884fc869260bac6f74f266 |
|
BLAKE2b-256 | 6a7b00b44a0b0d3dba25baf0589604edf4ceab34891cf5e15dcc1eacf5793a61 |
File details
Details for the file event_stream-1.6.3-cp38-cp38-win32.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp38-cp38-win32.whl
- Upload date:
- Size: 51.4 kB
- Tags: CPython 3.8, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04614d6e6a1e6ee61943ee2c6877316fe55fce2378c284b8a066cc190590f235 |
|
MD5 | 192faaf0e390e0cd541ee217b15eb3df |
|
BLAKE2b-256 | 1cd16d7e7a36cefd4d6eafe02295fc7a111fe87dc63d0f6320fb8c1e2d7461ab |
File details
Details for the file event_stream-1.6.3-cp38-cp38-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp38-cp38-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.8, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5eb6ea6c221451d13d778204b61fe35c52c5657b0bab02871c3f5db9467df213 |
|
MD5 | afadbfcc1ad03160107b2bba28ea48b1 |
|
BLAKE2b-256 | 24ae018d8b8107a6561c6f9c055f9aa1ea93908e92096a2f290fee5d59db1a8a |
File details
Details for the file event_stream-1.6.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 742.7 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d580000b710b86b06719dd7dbd95cd50aeeb6bdcd335526d8b92bb7580fe0ad1 |
|
MD5 | b11458f0658ec23e4f8d406cf2506d01 |
|
BLAKE2b-256 | 53f3e16af37a3b806b3ae82b016e8905ccc8c74de40c7744a04519d906d1a9db |
File details
Details for the file event_stream-1.6.3-cp38-cp38-macosx_11_0_arm64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp38-cp38-macosx_11_0_arm64.whl
- Upload date:
- Size: 56.5 kB
- Tags: CPython 3.8, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | afc0d196695293bd5b13961b609083e66a98b14040ad5bb21b9e1578f8f9d223 |
|
MD5 | 94b1c06fd5a8df6f84b81dfc77e3e159 |
|
BLAKE2b-256 | 202e571f6f28b497fe3140d7e3689a19e75c47bf5552feb5a71d0cfbb76e4ecc |
File details
Details for the file event_stream-1.6.3-cp38-cp38-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: event_stream-1.6.3-cp38-cp38-macosx_10_9_x86_64.whl
- Upload date:
- Size: 61.6 kB
- Tags: CPython 3.8, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44bdbd1999daa477f56eb15fcd1d52408b557e710153df8575e9beec374e4b01 |
|
MD5 | ed7b3568b9862ebd7e2430e6e3961fee |
|
BLAKE2b-256 | 3cb291b829bcc5fd773961c2759592ebf74ae3a841e43bb9549f68de4acb7fc3 |