Skip to main content

Zero-copy shared memory IPC library for building complex streaming data pipelines capable of processing large datasets

Project description

MomentumX


MomentumX is a zero-copy shared memory IPC library for building complex streaming data pipelines capable of processing large datasets using Python.


Key Features:

  • High-Throughput, Low Latency
  • Supports streaming and synchronous modes for use within a wide variety of use cases.
  • Bring your own encoding, or use raw binary data.
  • Sane data protections to ensure reliability of data in a cooperative computing environment.
  • Pairs with other high-performance libraries, such as numpy and scipy, to support parallel processing of memory-intensive scientific data.
  • Works on most modern versions of Linux using shared memory (via /dev/shm).
  • Seamlessly integrates into a Docker environment with minimal configuration, and readily enables lightweight container-to-container data sharing.

Examples:

Below are some simplified use cases for common MomentumX workflows. Consult the examples in the examples/ directory for additional details and implementation guidance.

Stream Mode

# Producer Process
import momentumx as mx

# Create a stream with a total capacity of 10MB (1MB x 10)
stream = mx.Producer('my_stream', buffer_size=int(1e6), buffer_count=10, sync=False)

# Obtain the next available buffer for writing
buffer = stream.next_to_send()
buffer.write(b'1') 

buffer.send()
# NOTE: buffer.send() can also be passed an explicit number of bytes as well. 
# Otherwise an internally managed cursor will be used.
# Consumer Process(es)
import momentumx as mx

stream = mx.Consumer('my_stream')

# Receive from my_stream as long as the stream has not ended OR there are unread buffers 
while stream.has_next:

    # Block while waiting to receive buffer 
    # NOTE: Non-blocking receive is possible using blocking=False keyword argument
    buffer = stream.receive()
    
    # If we are here, either the stream ended OR we have a buffer, so check...
    if buffer is not None:

        # We have buffer containing data, so print the entire contents
        print(buffer.read(buffer.data_size))
    
        # See also "Implicit versus Explicit Buffer Release" section below.

Sync Mode

# Producer Process
import momentumx as mx
import threading
import signal

cancel_event = threading.Event()
signal.signal(signal.SIGINT, (lambda _sig, _frm: cancel_event.set()))

# Create a stream with a total capacity of 10MB
stream = mx.Producer(
    'my_stream', 
    buffer_size=int(1e6), 
    buffer_count=10, 
    sync=True
) # NOTE: sync set to True

min_subscribers = 1

while stream.subscriber_count < min_subscribers:
    print("waiting for subscriber(s)")
    if cancel_event.wait(0.5):
        break

print("All expected subscribers are ready")

# Write the series 0-999 to a consumer 
for n in range(0, 1000):
    if stream.subscriber_count == 0:
        cancel_event.wait(0.5)

    # Note: sending strings directly is possible via the send_string call
    elif stream.send_string(str(n)):
        print(f"Sent: {n}")
# Consumer Process(es)
import momentumx as mx

stream = mx.Consumer('my_stream')

while stream.has_next:
    data = stream.receive_string() 

    if data is not None: 
        # Note: receiving strings is possible as well via the receive_string call
        print(f"Received: {data}")

Iterator Syntax

Working with buffers is even easier using iter() builtin:

import momentumx as mx

stream = mx.Consumer(STREAM)

# Iterate over buffers in the stream until stream.receive() returns None
for buffer in iter(stream.receive, None):     
    # Now, buffer is guaranteed to be valid, so no check required -  
    # go ahead and print all the contents again, this time using 
    # the index and slice operators!
    print(buffer[0])                    # print first byte
    print(buffer[1:buffer.data_size])   # print remaining bytes

Numpy Integration

import momentumx as mx
import numpy as np

# Create a stream
stream = mx.Consumer('numpy_stream')

# Receive the next buffer (or if a producer, obtain the next_to_send buffer)
buffer = stream.receive()

# Create a numpy array directly from the memory without any copying
np_buff = np.frombuffer(buffer, dtype=uint8)

Implicit versus Explicit Buffer Release

MomentumX Consumers will, by default, automatically release a buffer under the covers once all references are destroyed. This promotes both usability and data integrity. However, there may be cases where the developer wants to utilize a different strategy and explicity control when buffers are released to the pool of available buffers.

stream = mx.Consumer('my_stream')

buffer = stream.receive()

# Access to buffer is safe!
buffer.read(10)

# Buffer is being returned back to available buffer pool. 
# Be sure you are truly done with your data!
buffer.release() 

# DANGER: DO NOT DO THIS! 
# All operations on a buffer after calling `release` are considered unsafe! 
# All safeguards have been removed and the memory is volatile!
buffer.read(10) 

Isolated Contexts

MomentumX allows for the usage of streams outside of /dev/shm (the default location). Pass the context kwarg pointing to a directory on the filesystem for both the Producer and all Consumer instances to create isolated contexts.

This option is useful if access to /dev/shm is unsuitable.

import momentumx as mx

# Create a producer attached to the context path /my/path
stream = mx.Producer('my_stream', ..., context='/my/path/')
...

# Create Consumer elsewhere attached to the same context of /my/path
stream = mx.Consumer('my_stream', context='/my/path/')

License

Captivation Software, LLC offers MomentumX under an Unlimited Use License to the United States Government, with all other parties subject to the GPL-3.0 License.

Inquiries / Requests

All inquiries and requests may be sent to opensource@captivation.us.

Copyright © 2022-2023 - Captivation Software, LLC.

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

momentumx-2.8.2.tar.gz (57.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

momentumx-2.8.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (199.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

momentumx-2.8.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (179.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

momentumx-2.8.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (199.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

momentumx-2.8.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (179.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

momentumx-2.8.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (199.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

momentumx-2.8.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (179.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

momentumx-2.8.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (224.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

momentumx-2.8.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (199.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

momentumx-2.8.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (179.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

momentumx-2.8.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (224.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

momentumx-2.8.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (197.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

momentumx-2.8.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (178.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

momentumx-2.8.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (225.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

momentumx-2.8.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (197.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

momentumx-2.8.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (178.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

momentumx-2.8.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (225.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

momentumx-2.8.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (198.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

momentumx-2.8.2-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (179.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

momentumx-2.8.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (225.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

momentumx-2.8.2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (197.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

momentumx-2.8.2-cp38-cp38-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (178.5 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

momentumx-2.8.2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (224.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

File details

Details for the file momentumx-2.8.2.tar.gz.

File metadata

  • Download URL: momentumx-2.8.2.tar.gz
  • Upload date:
  • Size: 57.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.9

File hashes

Hashes for momentumx-2.8.2.tar.gz
Algorithm Hash digest
SHA256 2f769b2f43110c5cbc5d480c6c581dbf624caa318ff6b43cc33b7bee9cff42b5
MD5 6a6f047817ce601c631d805f2e87664e
BLAKE2b-256 66d4991d9d258a423c0ab7156381092143e2d01c06f67cce4e0fe89bd60252e8

See more details on using hashes here.

File details

Details for the file momentumx-2.8.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a4a5b1616245ef01c4ad22f4ad376ff7607c6b1aca13550060a8911f4095b460
MD5 b6aac3eefce52b017a4e4cbd75840cec
BLAKE2b-256 1b6e7038c7e2505f178b5516de49555e5a4df63f6c7949c19e8c94ea03de05b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for momentumx-2.8.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on captivationsoftware/MomentumX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file momentumx-2.8.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a2f80d095823f53396852d15380472b9c465dc34f32146868d52a788d28032cf
MD5 0cd8ea2bb501da27971e5a7f6e1a6d2f
BLAKE2b-256 97092b646d37ca5ec45fa4b0442a27d9fb148229fd3eb1c4940416d2fc7f2960

See more details on using hashes here.

Provenance

The following attestation bundles were made for momentumx-2.8.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on captivationsoftware/MomentumX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file momentumx-2.8.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fcf9b3ce5fd8ca08fda5e4c1cf8f4b902c4ea5a0dd81f23db1f2f9f5bbc9fb3e
MD5 0e0980b72cc37e93c30abbe0162e3218
BLAKE2b-256 2dd3d8bfbc6c68b82104845535d9aaef43c614c9caff4340c3c2536e3e7c12f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for momentumx-2.8.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on captivationsoftware/MomentumX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file momentumx-2.8.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fe9fd2accc5c6390af15cb0a915b3be0fd2946b0cadf59ed014755fdd32d570d
MD5 82ac5ab32a3e696274fb5eb49b5d12ae
BLAKE2b-256 86719c6e35e95c7688673ea9ddb35e3d36af258c18a5f6e0d544162de68d89e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for momentumx-2.8.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on captivationsoftware/MomentumX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file momentumx-2.8.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f57f70cdcda590ab10d0d357139f98231abea7cf8c14441b6ffea53e62708020
MD5 13b183d4b926a20550ef7cda4555d09e
BLAKE2b-256 dab932d1cc9287df213185b0a96c6a55dcae3c42dc79f59c705bac6788e862d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for momentumx-2.8.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on captivationsoftware/MomentumX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file momentumx-2.8.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 18d1ebe0d43c60f83be907e1102de97c32bae4a4a74c485d85cba2d44bc42835
MD5 a419d34988695aa9957bb1adac821b44
BLAKE2b-256 7dcaf1a76c3332c31c06dd185a0c2f00b3598f9f8ab10d45bb8b9fde20fcffee

See more details on using hashes here.

Provenance

The following attestation bundles were made for momentumx-2.8.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on captivationsoftware/MomentumX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file momentumx-2.8.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 366b475fa0727b83d725a483d4373a1a48edbaeb5bedf31e6e795b2801ee68e5
MD5 ec8fc9cdd2e34408e9e92aae4a9de61d
BLAKE2b-256 f07efe9d1af16c82e6425af230234046ef4d5477a2379b91c58854faf9864499

See more details on using hashes here.

File details

Details for the file momentumx-2.8.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bccbe6818bdea5c8c45e09789096fd51f594f35e28767b0bd61048b96dd5786b
MD5 5dd6526aefbd83ad6829c62797adfc9a
BLAKE2b-256 99c191e0c7cb6a413a84f6cdd87a4a65eb7a69b2765e7f37a2be64450068dc6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for momentumx-2.8.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on captivationsoftware/MomentumX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file momentumx-2.8.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d6b36dafce9ed8ef0718495b4b9eafdbd716fbea15276c7b75169f17e7f566fa
MD5 1b24aac9a4d6903708f814c1e27521a5
BLAKE2b-256 5dff399e514ff7215f8b19e653587022650cdf0c812ccca1a8ec322d69554e2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for momentumx-2.8.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on captivationsoftware/MomentumX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file momentumx-2.8.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0eb78219310ac3b834fb94a66bb61ecd557d0a319c07d740cd4b56a35c16e3ff
MD5 f7760db8395ad07fe2492bb8c19c7a42
BLAKE2b-256 a4f07bbc6e6d88af66c02b67d94fe8fd1e395291fc62c33c74318f31f5a7f696

See more details on using hashes here.

File details

Details for the file momentumx-2.8.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eaf53329d7e472e06498874a2ad70887684e10ae8f7d55334292cf673913ff0e
MD5 4c3293a9ac42d49217e0857178d0d26d
BLAKE2b-256 204c066cb3e72625713f2d6ded86ae284e3989fffb586cc973dc9749ab3ec9f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for momentumx-2.8.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on captivationsoftware/MomentumX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file momentumx-2.8.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 694bd83da68980d7152f15a895029dc6cb2c19d9d9e756e1741c5a06a0efaeb4
MD5 a42b5f1f479d5b7009f39d3b3505fe24
BLAKE2b-256 f4a75649cd829465cd777e1f5b6a8c9652342057517861cddaca93e20745bb9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for momentumx-2.8.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on captivationsoftware/MomentumX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file momentumx-2.8.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 32d3e529d700da3541dbc38d74d6b269bd06bc73087c062e40f3cf985169a076
MD5 bfef7dae6a0b9d4774fba86883e6f304
BLAKE2b-256 261bd8c5dd8a41f4e29da4559daa5a5f23c235fcbe8c88af142155e92d1de19f

See more details on using hashes here.

File details

Details for the file momentumx-2.8.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6c4c2182046e9b3f46c43950ba4605baa375d0ed3cd45abad06bb74f895d4b30
MD5 e8084a43a03ab61c2194f97e122f4f73
BLAKE2b-256 6ff05d0362556a233994c4183ec6db121dfd8a8ca85e3e4435a29f8836b25c96

See more details on using hashes here.

Provenance

The following attestation bundles were made for momentumx-2.8.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on captivationsoftware/MomentumX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file momentumx-2.8.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8c3c3d2adeec7629369eeff5955ec0140c01a497425fef23d8efa3c99620d1e6
MD5 21b0b5a89d9edf27816f0bc8c3b52d37
BLAKE2b-256 e9f3cb8f6b3c5f23691faaaed594d8b432adce72ba00d736dc0e5c6f581b32e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for momentumx-2.8.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on captivationsoftware/MomentumX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file momentumx-2.8.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 94205c2ade2a8d566dda078cdb028655e6e79ee387826be6d10bf3de7ccf2ce5
MD5 51e8312eab9a597fd3edfd2edd198ff6
BLAKE2b-256 e427b4b82135f826e5afb261370b266a52fcbaeef774eb6447708c88369d1bfb

See more details on using hashes here.

File details

Details for the file momentumx-2.8.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ab218c8926877daf42726490708336161a8dcf26973f71111be5e9164096fb56
MD5 220ddf07f61bd8d9a3f2cf91a39d0802
BLAKE2b-256 ddb666b2d0e5bd3df22c0c58b7206dfd666ea5019d596cf11630f25ebf8133aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for momentumx-2.8.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on captivationsoftware/MomentumX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file momentumx-2.8.2-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 af625fcfa32df6e45b10c2d0d62a57106520141eb05f2a3fb231e7ab2c4f2f97
MD5 7d05efdddbf2d4ee32e4f1128202a966
BLAKE2b-256 65be30fc47f09aaa5fa14b7c49568ef9b000e2743caf75b37e86b4a721003a7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for momentumx-2.8.2-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on captivationsoftware/MomentumX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file momentumx-2.8.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 429f505bb3d5739b206492a54212bf72874ac13011a6a59048e589d43fee93fa
MD5 fbdb8afa730e1047200800b5ea061f13
BLAKE2b-256 99886eba6eec483ce2f93cb5cfece7aff1e9757f67361da997f0d60341cbf96d

See more details on using hashes here.

File details

Details for the file momentumx-2.8.2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 debadcd7734e22966114fafbbbfda33ba9bc416ab74c51c8ba3c824b13318527
MD5 ca238516947d376b8799bfb0ceaad3c6
BLAKE2b-256 72c532b42490b0f48ab266d76e265b7c8bfaace9b7b41e4799fdfb1b7b0029d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for momentumx-2.8.2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on captivationsoftware/MomentumX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file momentumx-2.8.2-cp38-cp38-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp38-cp38-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 910319a84b634ee4576461463918e664c3380f6fc84c85231db97966141acdcb
MD5 e1bf51dda8a86b83c2932874af33d937
BLAKE2b-256 f8d6f436d218404225d2a8187207648837bf9385f46891e960e6a6edb1509b05

See more details on using hashes here.

Provenance

The following attestation bundles were made for momentumx-2.8.2-cp38-cp38-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on captivationsoftware/MomentumX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file momentumx-2.8.2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for momentumx-2.8.2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 be5a8c95a5deee37b16984a69b98d7d3449edd8ba993b762518e9233a70c0066
MD5 9b1d9166ff7a2b3b6b193c0007fc05cb
BLAKE2b-256 52cf0f671d8cb5f46d3a3a741908ce340d8c7606cb13dcdb57d22cc580a14bbd

See more details on using hashes here.

Supported by

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