Skip to main content

Event Stream

This repository contains an Event Stream Python reader implemented in C++, as well as Matlab bindings.

  1. Python
  2. Matlab

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 buffers
  • IndexedDecoder reads the entire file when created (without storing events in memory) to build an index, and can be used to fetch events at arbitrary timestamps
  • UdpDecoder 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

  1. Bump the version number in setup.py.

  2. Create a new release on GitHub.

Metadata

Release files for event-stream 1.6.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for event-stream 1.6.3
File Size Uploaded
event_stream-1.6.3.tar.gz 23.6 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for event-stream 1.6.3
File
event_stream-1.6.3-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
event_stream-1.6.3-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details
event_stream-1.6.3-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
event_stream-1.6.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
event_stream-1.6.3-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
event_stream-1.6.3-cp312-cp312-macosx_10_9_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.9+ x86-64 Details
event_stream-1.6.3-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
event_stream-1.6.3-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details
event_stream-1.6.3-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
event_stream-1.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
event_stream-1.6.3-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
event_stream-1.6.3-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
event_stream-1.6.3-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
event_stream-1.6.3-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details
event_stream-1.6.3-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
event_stream-1.6.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
event_stream-1.6.3-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
event_stream-1.6.3-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
event_stream-1.6.3-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
event_stream-1.6.3-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details
event_stream-1.6.3-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details
event_stream-1.6.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
event_stream-1.6.3-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
event_stream-1.6.3-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details
event_stream-1.6.3-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
event_stream-1.6.3-cp38-cp38-win32.whl CPython 3.8 CPython 3.8 Windows x86-32 Details
event_stream-1.6.3-cp38-cp38-musllinux_1_2_x86_64.whl CPython 3.8 CPython 3.8 Linux musl 1.2+ x86-64 Details
event_stream-1.6.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
event_stream-1.6.3-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details
event_stream-1.6.3-cp38-cp38-macosx_10_9_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.9+ x86-64 Details

Total release size: 12.7 MB

Release files / event_stream-1.6.3.tar.gz

Download URL event_stream-1.6.3.tar.gz
Size 23.6 kB
Tags Source
SHA-256 checksum
How to use checksums
a5ba0297bf81109294997673e1a9ad9835f75d6d7eabe92f16f1a3c176cbe944
BLAKE2b-256 checksum
How to use checksums
b8a31237171a7a39eda68d09fde10cc409bdcb3362d30303ef69ed53a16798bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp312-cp312-win_amd64.whl

Download URL event_stream-1.6.3-cp312-cp312-win_amd64.whl
Size 53.5 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
6fe9150d0d6a951bc75b729a40aaa84085695531df73e87cd7447c3db9a14c41
BLAKE2b-256 checksum
How to use checksums
03b43664c5c62bd1a462a80bbb39f65b594df11e42730a7547205a8b0e175dc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp312-cp312-win32.whl

Download URL event_stream-1.6.3-cp312-cp312-win32.whl
Size 51.6 kB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
a67a7719a32ac50894423490e121548c5101c33975f4a5ef69a5e6252e24a514
BLAKE2b-256 checksum
How to use checksums
60b38d746e0c73b9e28c3e489ba76d5203f1760b0dd34a71a51826c7fe23881c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL event_stream-1.6.3-cp312-cp312-musllinux_1_2_x86_64.whl
Size 1.6 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e40b3b59c5ebdcfb000394473dc390500d7ca88e002a89d381ae7e2102a6fc0f
BLAKE2b-256 checksum
How to use checksums
b020779ba344ba0b7b7f433849c2cca232598a83de98053d35288d9d800ad353
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL event_stream-1.6.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 747.5 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d24a9bb86260adfdd6c13ebb6bee89923f09a9eaae20bc56cab74eccb16331ed
BLAKE2b-256 checksum
How to use checksums
11a6fa5ff5e0279fd50c0792720ed279461994dd8f0611b3fb3ae8093567f618
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp312-cp312-macosx_11_0_arm64.whl

Download URL event_stream-1.6.3-cp312-cp312-macosx_11_0_arm64.whl
Size 56.8 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
39d502555a279a3a77b7d60e665e374731ad48aa67893544c6876385a94788de
BLAKE2b-256 checksum
How to use checksums
63904b79452fff921a5bb4c3241564d6b6d49805f915bff661e170a97fdde5d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp312-cp312-macosx_10_9_x86_64.whl

Download URL event_stream-1.6.3-cp312-cp312-macosx_10_9_x86_64.whl
Size 62.0 kB
Tags CPython 3.12 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
5cc5bd3acaaea57259d9fb3fab8acca4c30d20839066d69bd6839fe9a795e8fe
BLAKE2b-256 checksum
How to use checksums
d4dc822c17bc2dadd8cbca8347728dfdce2e171008f892bb5bc1dacb2346a6b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp311-cp311-win_amd64.whl

Download URL event_stream-1.6.3-cp311-cp311-win_amd64.whl
Size 53.5 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
82740cbdd3f3afac02defc82f21a4cddf11455d240d672ca61090895ee4bb393
BLAKE2b-256 checksum
How to use checksums
a2d60d14a4f88c2918097eaed1da57306da7bca104976631c022a9cb414ba506
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp311-cp311-win32.whl

Download URL event_stream-1.6.3-cp311-cp311-win32.whl
Size 51.5 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
1c25e929dbced9f1f145ba098a5571734d1e375119f459bf747ff25c4ca56c7b
BLAKE2b-256 checksum
How to use checksums
7352693d51ab2843fce39a3de67c934e14d89ee5e25ebe012b63d903d3fc17c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL event_stream-1.6.3-cp311-cp311-musllinux_1_2_x86_64.whl
Size 1.6 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
a3888254349ad5c03b045ff3ae0e5a21f769e45175e3fc338da63f55e5fd333e
BLAKE2b-256 checksum
How to use checksums
198fba139bf9f34e529d81355cf911bdcf19676a48e57743f7d5d142f5464488
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL event_stream-1.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 744.1 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
dc7f3a4fa33c619f995b822927b28ec14a4eeff1377e077c0c52d61977e06788
BLAKE2b-256 checksum
How to use checksums
c62d77ccb6b8e6639d35c6973382a58f5de4b132724f1f6917446d613a059d82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp311-cp311-macosx_11_0_arm64.whl

Download URL event_stream-1.6.3-cp311-cp311-macosx_11_0_arm64.whl
Size 56.7 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2490f8d560d81af38be07417761253619a3cf7af6775c80570300d42184ebc52
BLAKE2b-256 checksum
How to use checksums
ca5c25fc461e4c8824b8fa2da196519902e2be07b1a34a7188ae6150ba64fc4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp311-cp311-macosx_10_9_x86_64.whl

Download URL event_stream-1.6.3-cp311-cp311-macosx_10_9_x86_64.whl
Size 61.8 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
2c2eab33ef25be77156102f99fe40296249d8d6526066ecd76887933ce2a533d
BLAKE2b-256 checksum
How to use checksums
e508c727e9282647c1b1e0852b5a27b47622cfeac10ef05b3c35c9d601948fc9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp310-cp310-win_amd64.whl

Download URL event_stream-1.6.3-cp310-cp310-win_amd64.whl
Size 53.5 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
a4b45841f8696230f7a1ea2ba56b70ee18ca4a2ba10ad209a3949ea1256e22fe
BLAKE2b-256 checksum
How to use checksums
721ceac11924524b9dfc38d404b4406d33fb82528dc492da24283eba67835c1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp310-cp310-win32.whl

Download URL event_stream-1.6.3-cp310-cp310-win32.whl
Size 51.5 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
dfbfd9c79dc2bc7737bd7d34ba3ee4183299cd1d693d0511bb9e0380d146cd42
BLAKE2b-256 checksum
How to use checksums
b07134949e9811abd1eca803ba50ba55e2c1bfb7a40f219d994455798f8a3ca0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL event_stream-1.6.3-cp310-cp310-musllinux_1_2_x86_64.whl
Size 1.6 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e77e29a12e9a628ad20eaf0fae7dd654db1e80a5b65e76bb3449ed357abf9c29
BLAKE2b-256 checksum
How to use checksums
0138d04bd2f39f3e38182cbbd4af9a9869f809541558174e80e4d7a30a277c8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL event_stream-1.6.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 743.5 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
661e83e89a06931af823e34ae2b76f70b8c55327900f77f82bddd45a92b2f56d
BLAKE2b-256 checksum
How to use checksums
d6044fe41fc2b3105a353f492ca71a369162d336d40bea8fc159a92894a7ce25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp310-cp310-macosx_11_0_arm64.whl

Download URL event_stream-1.6.3-cp310-cp310-macosx_11_0_arm64.whl
Size 56.7 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
53f89530cbacdc0dbb3fe0d929cb65165aa1529b6db1d3e1ec8af5a9019e8d93
BLAKE2b-256 checksum
How to use checksums
f3f470b00b2ef38839da014dc88c9521b9ff242467fc081ce39e1c23889954cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp310-cp310-macosx_10_9_x86_64.whl

Download URL event_stream-1.6.3-cp310-cp310-macosx_10_9_x86_64.whl
Size 61.8 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
6f861091f6c14c81bcb104e35fef95ca8e6ba58dfc256a10fce021eab1bd1934
BLAKE2b-256 checksum
How to use checksums
3a9aa050eef9f735c383f5e75636d94253024ec3e6efce57a5c6b9cc5ba08a97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp39-cp39-win_amd64.whl

Download URL event_stream-1.6.3-cp39-cp39-win_amd64.whl
Size 53.5 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
fc0079f562470dfb552df03801ab08a2f1620d02a2a96ce1244f5958b61b2a0f
BLAKE2b-256 checksum
How to use checksums
608128688992ce9071516e695d884c7b0f0dd77547d95f7147e8c4260c649956
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp39-cp39-win32.whl

Download URL event_stream-1.6.3-cp39-cp39-win32.whl
Size 51.5 kB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
f48587662c00b6a3daf283f4388c2a03308508ac36acfce1b7f2049e45d3d171
BLAKE2b-256 checksum
How to use checksums
7e5ec3f48c0a530bac2504eff109cc5bd9653b9f0d473f30ea9df49a51210ae3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL event_stream-1.6.3-cp39-cp39-musllinux_1_2_x86_64.whl
Size 1.6 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e8d3db5c7053e251f3298fdeba4c55499abddeb32870df4d5c082b6135b5693c
BLAKE2b-256 checksum
How to use checksums
56749a9c15ae7a2a6ed67ea20311be67646ee85921ae22cd99e32c6b4559284d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL event_stream-1.6.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 743.4 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
6fd66495b7901ef622f36e86fdeb8c96715cd690c1fe7170d2204a81bb89119d
BLAKE2b-256 checksum
How to use checksums
898ac0f0e994c7d0697609d867792b26b5dfeb4a4904767bac3d6556a597cb5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp39-cp39-macosx_11_0_arm64.whl

Download URL event_stream-1.6.3-cp39-cp39-macosx_11_0_arm64.whl
Size 56.7 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1d06b0e7ec9e37af5d1aeec3f09697f8635b53556a5374875d164acf9b017c4a
BLAKE2b-256 checksum
How to use checksums
4c49b180108a705d40185098404c9d3dad1254d767c80f4904e24341e140bd9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp39-cp39-macosx_10_9_x86_64.whl

Download URL event_stream-1.6.3-cp39-cp39-macosx_10_9_x86_64.whl
Size 61.8 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
0375557f746eafeb51948294e95439603d70b3f8ddb2afb6a4d2e98cb07284e8
BLAKE2b-256 checksum
How to use checksums
5180fc90f5f13581c47ee942bb8ae7adebdcb3e10f2235c0a05487706fe1355d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp38-cp38-win_amd64.whl

Download URL event_stream-1.6.3-cp38-cp38-win_amd64.whl
Size 53.4 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
dda97e036f0a485af2dc79d69709ddec14e85a202242e49e4baee301e026dbbf
BLAKE2b-256 checksum
How to use checksums
6a7b00b44a0b0d3dba25baf0589604edf4ceab34891cf5e15dcc1eacf5793a61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp38-cp38-win32.whl

Download URL event_stream-1.6.3-cp38-cp38-win32.whl
Size 51.4 kB
Tags CPython 3.8 Windows x86-32
SHA-256 checksum
How to use checksums
04614d6e6a1e6ee61943ee2c6877316fe55fce2378c284b8a066cc190590f235
BLAKE2b-256 checksum
How to use checksums
1cd16d7e7a36cefd4d6eafe02295fc7a111fe87dc63d0f6320fb8c1e2d7461ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL event_stream-1.6.3-cp38-cp38-musllinux_1_2_x86_64.whl
Size 1.6 MB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
5eb6ea6c221451d13d778204b61fe35c52c5657b0bab02871c3f5db9467df213
BLAKE2b-256 checksum
How to use checksums
24ae018d8b8107a6561c6f9c055f9aa1ea93908e92096a2f290fee5d59db1a8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL event_stream-1.6.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 742.7 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d580000b710b86b06719dd7dbd95cd50aeeb6bdcd335526d8b92bb7580fe0ad1
BLAKE2b-256 checksum
How to use checksums
53f3e16af37a3b806b3ae82b016e8905ccc8c74de40c7744a04519d906d1a9db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp38-cp38-macosx_11_0_arm64.whl

Download URL event_stream-1.6.3-cp38-cp38-macosx_11_0_arm64.whl
Size 56.5 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
afc0d196695293bd5b13961b609083e66a98b14040ad5bb21b9e1578f8f9d223
BLAKE2b-256 checksum
How to use checksums
202e571f6f28b497fe3140d7e3689a19e75c47bf5552feb5a71d0cfbb76e4ecc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / event_stream-1.6.3-cp38-cp38-macosx_10_9_x86_64.whl

Download URL event_stream-1.6.3-cp38-cp38-macosx_10_9_x86_64.whl
Size 61.6 kB
Tags CPython 3.8 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
44bdbd1999daa477f56eb15fcd1d52408b557e710153df8575e9beec374e4b01
BLAKE2b-256 checksum
How to use checksums
3cb291b829bcc5fd773961c2759592ebf74ae3a841e43bb9549f68de4acb7fc3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.4

Release history Release notifications | RSS feed

This release

1.6.3 This release

31 release files

1.6.2

31 release files

1.6.0

31 release files

1.5.0

47 release files

1.4.4

17 release files

1.4.1

13 release files

1.4.0

13 release files

1.2.1

1 release file

1.2.0

1 release file

1.1.0

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page