Python package implemented in Rust to decode MOSS readout data
Project description
MOSS Decoder
Python package implemented in Rust for high-performance decoding of readout data from the MOSS chip (Stitched Monolithic Pixel Sensor prototype).
Installation
$ pip install moss-decoder
Import in python and use for decoding raw data.
Example
import moss_decoder
moss_packet = moss_decoder.decode_from_file("path/to/raw_data.raw")
print(moss_packet[0])
# Unit ID: 6 Hits: 44
# [MossHit { region: 0, row: 3, column: 11 }, MossHit { region: 0, row: 18, column: 243 }, ...
print(moss_packet[0].hits[0])
# reg: 0 row: 3 col: 11
Features
See python types for the type information the package exposes to Python.
Two classes are provided: MossPacket
& MossHit
.
3 types of functions are provided
decode_event(arg: bytes) -> tuple[MossPacket, int]: ...
# allows decoding a single event from an iterable of bytes
Returns: the decoded MossPacket
and the index the unit frame trailer was found. Throws if no valid MossPacket
is found.
decode_multiple_events(arg: bytes) -> tuple[list[MossPacket], int]: ...
# returns as many `MossPacket`s as can be decoded from the bytes iterable.
# This is much more effecient than calling `decode_event` multiple times.
Returns: A list of MossPacket
s and the index of the last observed unit frame trailer. Throws if no valid MossPacket
s are found.
decode_from_file(arg: str | Path) -> list[MossPacket]: ...
# takes a `Path` and returns as many `MossPacket` as can be decoded from file.
# This is the most effecient way of decoding data from a file.
Returns: A list of MossPacket
s. Throws if the file is not found or no valid MossPacket
s are found.
MOSS event data packet protocol FSM
The a MOSS half-unit event data packet follows the states seen in the FSM below. The region header state is simplified here.
stateDiagram-v2
frame_header : Unit Frame Header
frame_trailer : Unit Frame Trailer
region_header : Region Header
data_0 : Data 0
data_1 : Data 1
data_2 : Data 2
idle : Idle
[*] --> frame_header
frame_header --> region_header
region_header --> region_header
region_header --> frame_trailer
region_header --> DATA
state DATA {
direction LR
[*] --> data_0
data_0 --> data_1
data_1 --> data_2
data_2 --> data_0
data_2 --> [*]
}
DATA --> idle
DATA --> region_header
DATA --> frame_trailer
idle --> DATA
idle --> frame_trailer
frame_trailer --> [*]
MOSS event data packet decoder FSM
The raw data is decoded using the following FSM.
The delimiter
is expected to be 0xFA
. The default Idle
value 0xFF
is also assumed.
stateDiagram-v2
direction LR
delimiter : Event Delimiter
frame_header : Unit Frame Header
frame_trailer : Unit Frame Trailer
[*] --> delimiter
delimiter --> EVENT
delimiter --> delimiter
state EVENT {
[*] --> frame_header
frame_header --> HITS
state HITS {
[*] --> [*] : decode hits
}
HITS --> frame_trailer
frame_trailer --> [*]
}
The EVENT
state is reached by finding decoding a Unit Frame Header and then the decoder enters the HITS
substate which is depicted in the FSM in the next section.
Event packet hit decoder FSM
stateDiagram-v2
region_header0 : Region Header 0
region_header1 : Region Header 1
region_header2 : Region Header 2
region_header3 : Region Header 3
data_0 : Data 0
data_1 : Data 1
data_2 : Data 2
idle : Idle
[*] --> region_header0
region_header0 --> region_header1
region_header0 --> region_header2
region_header0 --> region_header3
region_header0 --> DATA
region_header0 --> [*]
DATA --> region_header1
region_header1 --> region_header2
region_header1 --> region_header3
region_header1 --> DATA
region_header1 --> [*]
DATA --> region_header2
region_header2 --> region_header3
region_header2 --> DATA
region_header2 --> [*]
DATA --> region_header3
region_header3 --> DATA
DATA --> [*]
region_header3 --> [*]
state DATA {
[*] --> data_0
data_0 --> data_1
data_1 --> data_2
data_2 --> data_0
data_2 --> idle
idle --> [*]
idle --> data_0
data_2 --> [*]
}
Decoding hits using the FSM above leads to higher performance and assures correct decoding by validating the state transitions.
Motivation & Purpose
Decoding in native Python is slow and the MOSS verification team at CERN got to a point where we needed more performance.
Earliest version of a Rust package gave massive improvements as shown in the benchmark below.
Decoding 10 MB MOSS readout data with 100k event data packets and ~2.7 million hits. Performed on CentOS Stream 9 with Python 3.11
Command | Mean [s] | Min [s] | Max [s] | Relative |
---|---|---|---|---|
python moss_test/util/decoder_native_python.py |
36.319 ± 0.175 | 36.057 | 36.568 | 228.19 ± 2.70 |
python moss_test/util/decoder_rust_package.py |
0.159 ± 0.002 | 0.157 | 0.165 | 1.00 |
@CERN Gitlab installation for CentOS and similar distributions from local build
If you update the package source code and want to build and install without publishing and fetching from PyPI, you can follow these steps.
The .CERN-gitlab-ci.yml
file contains a build-centos
manual job which will build the MOSS decoder package from source and saves the package as an artifact.
- Start the job, download the artifacts.
- Unzip the artifacts and you will find a
wheels
package in/target/wheels/
with the.whl
extension - Run
python -m pip install <wheels package>.whl
- Confirm the installation with
python -m pip freeze | grep moss
, it should display something containingmoss_decoder @ file:<your-path-to-wheels-package>
Troubleshooting
if you get ERROR: Could not find a version that satisfies the requirement ...
make sure to add .whl
when performing step 3 above.
if you don't see the expected message at step 4, try running the installation command in step 3 with any or all of these options --upgrade --no-cache-dir --force-reinstall
.
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
Hashes for moss_decoder-0.5.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5fd535f99635f606751433ab898905802604779983bc1bbb4ed7e9aa9a85945f |
|
MD5 | 4e07d711de84da6e1bb719fe99725816 |
|
BLAKE2b-256 | 55db4a789554dfcfe221e96a1e6b5bd33fca73d916390c51874ff7808bb1eb25 |
Hashes for moss_decoder-0.5.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5285e6028a8ac823217e21f53a16f066cf5be6205435c649467be2523a5789c7 |
|
MD5 | 64547f90a00fe4351900305801784f5d |
|
BLAKE2b-256 | b50e1ee2ee46dc1d677a5d91ed2e9eafe40e59085a535bba5e58703161f34245 |
Hashes for moss_decoder-0.5.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e923af523ed469447a6206719b4f0f34b18de200fb26babcb5dc183e17de1cd7 |
|
MD5 | 965497ec019621a54f95ae175a645857 |
|
BLAKE2b-256 | 08c177e5bada671d1ac4092b6b7deac08384f046742c78624d4f0644dd58f104 |
Hashes for moss_decoder-0.5.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 079fe51caa01769d401e8d81dc1c2071bb39d26ed154f0d1d4079d1470f79357 |
|
MD5 | 6e73b6abdf6fe82e01c9accb6e8f8d2c |
|
BLAKE2b-256 | 2257f159654539c231b1b0269a66abd6357de49f4c20652cce32653f4c4e42dd |
Hashes for moss_decoder-0.5.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 927515325d1b4c1f062de535e75fd9d1c6d79999df942c9bcea22aa46bf9f901 |
|
MD5 | a5e90537c7bfeaa8a1693739a07820f8 |
|
BLAKE2b-256 | c47cfc867e1625495ef37fd0c37c63dc2c363cd3c2282a7fe245625374755ed2 |
Hashes for moss_decoder-0.5.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5009ba0908368b0dc98e36af332ec9bff2afcfed21516254438d13ebee19702 |
|
MD5 | 490b9ea98628839b469333e854dcda7f |
|
BLAKE2b-256 | ff8a7d94cca3e7bea93845215847447775e8a5dbecafee472a522c8e55946395 |
Hashes for moss_decoder-0.5.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07ec558ca9ef468b93b2789528955de5f6e7b9db590845dea93f78a1e84c0635 |
|
MD5 | c436c191a4d0c8c5d46938d75757addc |
|
BLAKE2b-256 | b82d5e79112f7e6ec8faff2e9a652ef7f8d01b8e5bb7f064e4010df1a430c636 |
Hashes for moss_decoder-0.5.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98d7fdae1e984dc6de4005a22c1c0b9b9a82f3ae72343b509e9aebc9c7843f5b |
|
MD5 | 865c10f146cd492e0c93dfe6a559a653 |
|
BLAKE2b-256 | bc886ce6d6a41ebccffa6274d14f86d6ce93eff9a58a64715ff8d7194fccce28 |
Hashes for moss_decoder-0.5.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0201144aaf91a9aa8744afc2c640c35c98701f8eb710f90db1057f83bccbf38 |
|
MD5 | 331088d9a7cc23957d06cb388216188c |
|
BLAKE2b-256 | 0da765f076e3ffb5607760e6ce5764817ff2e0b577a4da4135cf61142ba70ddd |
Hashes for moss_decoder-0.5.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e7628172fef5731b8d3554d93e3569f070d1e92b243513099963e12c71a0efc |
|
MD5 | 23259d5deb56324b5cf19b81747b8a23 |
|
BLAKE2b-256 | 930d976ec712f0c28ef89b70e9ce673c021c227786e28c36266b7cfca85c0896 |
Hashes for moss_decoder-0.5.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 188536447a4d466e05fad058c85f0f8196b8bc4f47fbb321e6b241fe117ec842 |
|
MD5 | da13c9c96643c9252527e4a68d19e2da |
|
BLAKE2b-256 | 51a640c166eebb1c0283d510a0fee29d5c731f6fe5e3a5f05d2cf8161147554e |
Hashes for moss_decoder-0.5.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41ec59312ec1d256b602405d906d2b26c9e833cbe2f24ae54c4499c8ffffb78a |
|
MD5 | 9f08cd641d13a709a951a427342b7a18 |
|
BLAKE2b-256 | f5b5f5d58a8f7786daf20d94f01ac26eafa058b03ab0151a4f6ab7d8f5edfd10 |
Hashes for moss_decoder-0.5.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 332bcd838282c496a6185b3f0bf6d99914155075835cd82926ea03a2b07cb78b |
|
MD5 | ce233c9e9e3c55a83cff31adfc898c91 |
|
BLAKE2b-256 | 1b504315ba870e55ad0b5df98d2a2835d56f98dbd3522e85b3b3611502c33d47 |
Hashes for moss_decoder-0.5.1-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86e20442fadae8b5052c5225e79bcb35a5f64335ec728ac8edc66e1f8f508109 |
|
MD5 | 5151ceac01876620f62dd719e02b1687 |
|
BLAKE2b-256 | 53afe36b590fc19b13bb6e25f26c4bf17f47dd6050f4f950b9a26b42d7f3ff0c |
Hashes for moss_decoder-0.5.1-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79fb77542dc365b868d0bae57b6e75dbad1bfb1c85011e6e3d514dc4db1361d4 |
|
MD5 | ed4953444861811e044572b3e8fa4357 |
|
BLAKE2b-256 | c807a459ac26ad5a6e45be5087c307961a91e80633072386ac2935d802dc141e |
Hashes for moss_decoder-0.5.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d4c5b8840014b3b9a66d346883549856098aaccd636a15ece9cbc0afe9297f3 |
|
MD5 | d5048ef75c20ce5e9fd82a68676e4517 |
|
BLAKE2b-256 | 4b8a2c6094b6c2b3cf7b520225ca6bc82e97b49ee4f90a384aa264c29068b1a1 |
Hashes for moss_decoder-0.5.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 663d6d07e3af1cf037d76c7540c9984a838caf89f7bc09a9af5d6cfe394ec634 |
|
MD5 | 13ee039cd95b52a0e9037da5713c17b6 |
|
BLAKE2b-256 | 7323581f81e7c0e9f316404133b20186ab4e10acde9754de0adc44343e87cbfb |
Hashes for moss_decoder-0.5.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78376d226e21e1395e03b4cd94d4d6168138778aab012df5c7b3274a2633593f |
|
MD5 | 3b97c13c3f56520416cdaaab5968ffc1 |
|
BLAKE2b-256 | ace700f42fd2d3432cf47ed2f0006d074b292889b5efaca1e642bf34a4bb9779 |
Hashes for moss_decoder-0.5.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a8cd8192a1010dd700a82c229b900dad211bde0a0d57e43117a4d38d9966f93 |
|
MD5 | 16fa3271f08a99224d96b8f829cf551a |
|
BLAKE2b-256 | 1880135fb24c450ab6c286d4f0f006aab47ae3af02e9dad435e93853c79167cb |
Hashes for moss_decoder-0.5.1-pp37-pypy37_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f3d7011d95d7efec077fe9fdb2f9329652dcd5286a6e9dc9fbcfc44bf722bf2 |
|
MD5 | 5af504341c245df2a2b52f152e96f8bc |
|
BLAKE2b-256 | 29afb6ceedca3d7c52aacee32cae4f9eb65d60a5058b47a1d029ad925790599d |
Hashes for moss_decoder-0.5.1-pp37-pypy37_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b42228c6d98ba855758a8e2ed96640e05dbea92b204649a29b802e9c71e0a485 |
|
MD5 | b3583e7b2a4f2864c8bb96ef2853015f |
|
BLAKE2b-256 | be91ac9de1a6abca597b8ce2cb6d7cc534137523ceb8a725c21683eb5229b869 |
Hashes for moss_decoder-0.5.1-pp37-pypy37_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | beea2caf287a20ad267fb213dea7e7533d8161a9e15f041a5ede6f223cbf4fba |
|
MD5 | 66b45f046385cc97c68eda2e6ae1c219 |
|
BLAKE2b-256 | 3c17c9b846ae1e6d9b323cd16242e1245a47d7bd69b59c4b334c8c882688e789 |
Hashes for moss_decoder-0.5.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19588265d3c7730f75580d1f5c2a5108bff6218716a7aaf37089b5f580e03d5b |
|
MD5 | 5716930d9472a7ba01b47901d45f0d11 |
|
BLAKE2b-256 | c99cfbdaa842a298d2e84d672dc92e22e436a91073f473b5c7c8743468978431 |
Hashes for moss_decoder-0.5.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4172d65c1b322f2d63340a763bf0020f1da27b457a80dadc10adda1cd45d7a5 |
|
MD5 | 7c734dd5de80cec5f4eb874c9b454a15 |
|
BLAKE2b-256 | 1cfa1b2d2bdefc2afff3b82068ab278414ee58f1ee454abe65863a87ed3ceb00 |
Hashes for moss_decoder-0.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d227ec355a8cd9bd5ee756eff1d772b03daa6bcdf27cc72d90a9ac7119e042b |
|
MD5 | b149e5036a5603ae1cf820cfe6973c5b |
|
BLAKE2b-256 | c1ce125a85403dab47f79728731d950cd2001e1aed0205f7d76db86e77ddbb32 |
Hashes for moss_decoder-0.5.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc79cf8d01c3625eded06c63066d9cc1b0d1f9aee25f1ada8912d38dfba54ad7 |
|
MD5 | d4707bda1c0caaab265d6c4d7ee4f5ef |
|
BLAKE2b-256 | 4a76afa6b7579e2d22a81077b295490c6680d14248a545372f19bc9afa11846b |
Hashes for moss_decoder-0.5.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 733e9d18146084ecd72ea0605ca0eab34093f0cf263e697fd9bc33e8d3da1553 |
|
MD5 | 0e4b2a800ae0b5d57669dccfef101f64 |
|
BLAKE2b-256 | d502959ef29c7a7bdc6a9aa84bb8f2cad6ea74279d6c63fc05359e58a58fcf36 |
Hashes for moss_decoder-0.5.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93dbfcf5b1a1b64e0d79baf8352c1d2589aa702b21c49c28d5033e708ef0391c |
|
MD5 | 18936a1c734995196f732fe1709897ec |
|
BLAKE2b-256 | e111987d1dd9fbc935a794a5e9c487ab709eec26a14c52b763b489c02265b5a8 |
Hashes for moss_decoder-0.5.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0180fb3cc822807b3b9e976772aeb2e14d94aa34bcaa91038a2f256f36f6fdd |
|
MD5 | dad8fc1d5f5fed4a1fadb16cfffdfdbe |
|
BLAKE2b-256 | 2a84b55b022838821a1f7b1f4bce91e7fb55880702c8e5009cadfbd9f25002c2 |
Hashes for moss_decoder-0.5.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2faea8fb3ae30069ed2e1724e1cb5dabc8645918a530e75205db4ffa4a7458ef |
|
MD5 | 0bb20fb24956b56e1e2a502f454025a8 |
|
BLAKE2b-256 | 7c750de6ba41c58b67324e876bf8a857784f9cbc9dad12c2e5c0f03ce8ac6b02 |
Hashes for moss_decoder-0.5.1-cp311-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8af1830f1c3d3e5615b33fa93bd6b911664ada6381a8ffa14c434410b7e40bb6 |
|
MD5 | d0d225ad46f11292b51826a98a8998b1 |
|
BLAKE2b-256 | 98155b3281803073a4c42deb39bed5eab69b582795f216339e627e84c2002aa8 |
Hashes for moss_decoder-0.5.1-cp311-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7dee077d0df562dd80c54af8c0b8a40481c6d4c384dc6862ae587bf7db0100bf |
|
MD5 | 80d82bf7a178b4a8de8e65234152161d |
|
BLAKE2b-256 | fae662675ffbbbd38b643f0724d15b7cdf73667b2e226246db7a9ecaf0f4bd95 |
Hashes for moss_decoder-0.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7eaef9f2b3be17181b60cf990f699d9fc305448f6e32a6789a53aa1bd1c360d |
|
MD5 | dfe630143df99b033c39dba318f18e26 |
|
BLAKE2b-256 | a5626f087fd068b11906740514e19c860a139700788ec7f89336a23298de73fe |
Hashes for moss_decoder-0.5.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e37ff2fcd26291b26bab7b6fff9eccc7c6d20876a7721d365488412937b0d362 |
|
MD5 | eac966fb55cd3429df495410f2da7dde |
|
BLAKE2b-256 | 511f149fe8c878afa8182288a303854dc79c57d8be7d93eb588458537f008852 |
Hashes for moss_decoder-0.5.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a89d07e9963ca829ba065d2f6e519b7194adfa1f4f242a0013f76296ed4864c6 |
|
MD5 | 9c5fa4bdc1d2c6e55e8af3ce8d69b661 |
|
BLAKE2b-256 | bab72ba18f85289048492fb230d696728e4afdc56860f0eb326ca97ee868efd7 |
Hashes for moss_decoder-0.5.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 323118fd009ad6d8ca41e987e18f6706aab46c6e2918cefdabbc8633a0889b2d |
|
MD5 | b535c8589e83f70849a2d099057874d7 |
|
BLAKE2b-256 | b62d338acf53175caadfc525ede62dcc354388684d396b813fd5b16409a72acb |
Hashes for moss_decoder-0.5.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef794e748ccbc0d64cdbe7594b04541c72b72c4b93fe959acd199aab11102d0e |
|
MD5 | c2dc63aa9a1a68a172952ab9b128423f |
|
BLAKE2b-256 | 8fb8277c06bf83368a9408ff5ce56d3207068153b66cae8624fd897680f22764 |
Hashes for moss_decoder-0.5.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bf72edd973917fdb7e4377303a9e74f782c117b4284eb10d15211a7a1f56ebc |
|
MD5 | 9d3f37d583144fb8c6b6380cbc150341 |
|
BLAKE2b-256 | d87a797a35e5592d73a5202d4978610483acd9147ec42fe60710bbd3bc98d45b |
Hashes for moss_decoder-0.5.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7956e7a8295d50b2a05afc8b642a626248eb8a247ae84a36917189196da35f15 |
|
MD5 | 0609f4d7b44b8e8670e8a74f4583f9fd |
|
BLAKE2b-256 | 405b7d26994beb07e1bd9ba1c144541dc80035e283b43eb21c1ca91fea05e795 |
Hashes for moss_decoder-0.5.1-cp311-cp311-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 945c376fabaff72e7471d8b3922c0dcdc2af034124a67f75f3dbf90cabc28e13 |
|
MD5 | 9e4fd5e842d7ea2cc2a4d02c25e751cd |
|
BLAKE2b-256 | 9400381d8ef42a5ed1908d13de379eefd0dd0df145af120c6e66679bf9469cc6 |
Hashes for moss_decoder-0.5.1-cp310-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c4513fbb31939033ad9a74e0e183c1bdbc59e2bb9b0dfdc789e38e6d9a74e1e |
|
MD5 | c24e2c8119534b80c80a8d37e6c0db8c |
|
BLAKE2b-256 | 9ed9876f8c709f67bfcf40c8dc9b5c119b409f6229f352fdbedc3fce99db435a |
Hashes for moss_decoder-0.5.1-cp310-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a99a2379322f060ad7a8a66c588ecaa10c69ea2b04ffab4c08251e9a58503520 |
|
MD5 | a6eb166c01e76b6993c7aee10f18d578 |
|
BLAKE2b-256 | 1569d37a584ee4941ea0f96aea440dc586276836ecd783fcb43feece1af08199 |
Hashes for moss_decoder-0.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10fe7855b4f43485df837ac7b7bffd9c360f94b42167e4e9866288135207d09a |
|
MD5 | db6bb2a649f482ea536c504fd2347324 |
|
BLAKE2b-256 | 8b31bf562eb9ed30fa5d3c50319e127b95ebf2138c8cd48a87ca53976f3d2e07 |
Hashes for moss_decoder-0.5.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | afdbd19fef64b5e449374ad4ee0669b6f18ef0aa3a908e22c96a07fd8fbf4c05 |
|
MD5 | 6d75ea40120b387914059a3c4569ae07 |
|
BLAKE2b-256 | 5e67287413de6813881839edf83c35c61543185042fa874f6741ea3b56926c31 |
Hashes for moss_decoder-0.5.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | efdce3bde137403e62af653f540b74a18d40982a9f0f82db2304615000ab407c |
|
MD5 | 994aa57798d10272846bad3f74d3e1de |
|
BLAKE2b-256 | cd757d2f8e7ce9eb743f5f3731a74f2798ee9b2955e3e190fe7f6a49ea0ae83b |
Hashes for moss_decoder-0.5.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0754fe7b6af623f19a10ea961a70e5b3a7e63c7214d34c437ced95626de76bd2 |
|
MD5 | 6ff1dce367df47e6a4677f440bca415c |
|
BLAKE2b-256 | e3f28bbc82e6565117bc0973adae75d60c0dd8458adb31d2f40d6ebe4b7f047b |
Hashes for moss_decoder-0.5.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e90d15d86215d4bbb6ae1c9aa1881263250f4c69753bdb986e3e5fe8a020f093 |
|
MD5 | 08b107fee2d25225af9ac8c7079f20e2 |
|
BLAKE2b-256 | 92af73396af4fc2af35953a8de5364b3eab6e51f2c7dcc91704cb70c15ace53c |
Hashes for moss_decoder-0.5.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 957047fe6d57c1ad0a199197ec206eec02e2aff74b7bf33889f7142df58a08c1 |
|
MD5 | 41fbc58fb6b7db0cafc0246ddec8a571 |
|
BLAKE2b-256 | e4f29c1b42b37a3d7a453f05d10d49dd33b15c2eb4fd069618304d9814973274 |
Hashes for moss_decoder-0.5.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab9ecdd51aeed33eb0f93ca8d19f92c80d1a254cb7712b2e8e4971ff129b3b0d |
|
MD5 | 433f08b703c69193320428eb505776da |
|
BLAKE2b-256 | 15ab74f41bbeb1235980546d7eeaa45aea6cbdc221d07a68b682e98b04438a3a |
Hashes for moss_decoder-0.5.1-cp310-cp310-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa53a45c8590361a18eec225291fa07028d0ace3bbc998acb30d2c0a6e37fd98 |
|
MD5 | 64c31afd922139eb7947efeae25bb525 |
|
BLAKE2b-256 | 4734c762d95cc9f1a827b460a5e21ce295432fa0248274bc3b6cb586e5623b61 |
Hashes for moss_decoder-0.5.1-cp39-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ea6a969826d5608b8af63faad5b8a372df160cc3c2bf4744cd65a7b062b053a |
|
MD5 | 6e7c45695538ad36b7115c73c2a09268 |
|
BLAKE2b-256 | 403015a462381a9c6a020efe9f85de571fb8865cf46bf4eca82601c49e26c1f5 |
Hashes for moss_decoder-0.5.1-cp39-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebbdc7990a646c6af81823e7ba1b3a640a2753c6b45e68472bfee1c62495913a |
|
MD5 | 9560166d500467619fe62c321608cc6a |
|
BLAKE2b-256 | 39c469144f41c30628eca3aabf2b606bb4f315ac145217990abe46762b279c7a |
Hashes for moss_decoder-0.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9b27a95ff4a9a6b96b125a28376d9bf19d7102dc9ebc0dbf02e0ade37ee42a8 |
|
MD5 | bd3b9d3c1108339277b652ed90db1c00 |
|
BLAKE2b-256 | d2d69413f6d3087b65cdf94456c68d490ee01cebb310cc1e91b459a4a18ed9de |
Hashes for moss_decoder-0.5.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 226166e12bffea9d4f0e3429ee99249da8830ae82ffac37b7c160768a55ebe9c |
|
MD5 | 838b815a39da95eab5a15b9c17dca2b9 |
|
BLAKE2b-256 | ed121fce3f4feee74affc401e6b1cca8bf0589b7292af09cfc91e9965a81c9c0 |
Hashes for moss_decoder-0.5.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d4c7f0c5ae34d93787208d064e8cef5e06eea7f417ed6afde8b6544f0b0f7f8 |
|
MD5 | 2120dd3042c3c5acd629873e393041a8 |
|
BLAKE2b-256 | 5e5f7856324ed56e783940c28acd4e63ea4c909e5714971ad4c958bf8d713ec5 |
Hashes for moss_decoder-0.5.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 35b500a7e4d66997b7ec13752cdcfd7dc9b5fd13065893c8118c359bf7bacf33 |
|
MD5 | 4293c051ab3b0d7542ee296778a7452c |
|
BLAKE2b-256 | e9e6967aa5941e697978fa8960995c8ee7d3be1cf8a3f1701df04c40c49208ae |
Hashes for moss_decoder-0.5.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4a4f1ec13879d3e3664da0bb7a07cfa5ae0eee40845fbdcb4da53adfcad59e2 |
|
MD5 | 781306d7363fc57113ef89a07328cdd1 |
|
BLAKE2b-256 | 8b462f3de2390f25d794e3f1fcb3dc7d7d7a31cfdcd314caaedd8d929f5d73e0 |
Hashes for moss_decoder-0.5.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd5af96594beaeb30d0bf882083490cde0474f50372b572fa393d788183805aa |
|
MD5 | 11d49e135b87c2f03b474f4245c55106 |
|
BLAKE2b-256 | 3cd9f3a99d52708b26e2a221f15abec76de1827aaea427a723053e843070675f |
Hashes for moss_decoder-0.5.1-cp38-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc5cfca413a720dd0b7bcc2f99e879fd6fb3d9f2decda3700b06d28234192076 |
|
MD5 | 2b49344e6fa5e0e0b8362e5a7d5937ea |
|
BLAKE2b-256 | 682ea9bc75708ead38d3a128150ad2c8b1e20aa15993defe00f29533de8cf962 |
Hashes for moss_decoder-0.5.1-cp38-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16043582bf4e2f5523a785a663f6909cfee8ffa0dfe3f9c0e3d0a82a4d79629d |
|
MD5 | 9584c8ec8085e4d3e88c0fa0701b738d |
|
BLAKE2b-256 | 576cd28ff31ed3ba221a425b9feef18f3ce13a958df8aea6e2279a6207e3e81a |
Hashes for moss_decoder-0.5.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82ca5f918ccd21000b9adee050ae91cec5ca1c66943662934840b38b6dda5881 |
|
MD5 | 3cdbbfbf42cddabef1b424e3173393fb |
|
BLAKE2b-256 | 6d13c372d1afc25fb10348896f5571797cb5adf6c62a91ecf2cc668205671ece |
Hashes for moss_decoder-0.5.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 14ec35ebb823f25bf2d0a4f85769b81055224438b97b8d4d1bbe37dcd7607802 |
|
MD5 | b72be3a3bc1e01ce306bc7cb3cc3cbf7 |
|
BLAKE2b-256 | db78247c1ff12f59bc21fd11eddd6e2fd9a4b02fa77d9ce048ec8e096655196c |
Hashes for moss_decoder-0.5.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a88f86e1754b9556096380fdeb91d0a54770e55d61c2e9b6e493abae2cc4a6c1 |
|
MD5 | ffa9d3aaa6a69efe1fb0ec56fe02e49b |
|
BLAKE2b-256 | a69602518445345a1bab237b4e1aca420642af0fc2983153de319aa34ad09299 |
Hashes for moss_decoder-0.5.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5417c73a4041f8a1ffd7e36836a3e478eb5d7403e6b1a9fbbcb08e8f0333303f |
|
MD5 | 035891bacb763a8f4123663c94316b64 |
|
BLAKE2b-256 | 21079d622cf1f2b42074bac70811d38d2beb10450e4410054f73d1da7088984b |
Hashes for moss_decoder-0.5.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec1ff5f5e350219764589ede8e09203f70f0b4a2a65e12d60192fcb4d2671fd5 |
|
MD5 | 93bd787d38ae9e154e9c60a75f148cf4 |
|
BLAKE2b-256 | ad89d76620c3b9d26379095347a4f2eded156c7b38c0f8213e0e66078c3bf5be |
Hashes for moss_decoder-0.5.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab62c77f2915b44eabd03b630114ec8c27c8db1c686e0c890a9805db2cfe8def |
|
MD5 | 5e80e6724219dfa28fd63183c2ed5f0d |
|
BLAKE2b-256 | 79b383736c0b0474b9e77bdf02c527f80412001e584225b215e48a1d0d8b6f25 |
Hashes for moss_decoder-0.5.1-cp37-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 026712d3f59467afb6ed5b3dd51ad92593732e554470278b96f0c4cd68e09259 |
|
MD5 | 818686c37a3b58cf0300d3b8acef70f1 |
|
BLAKE2b-256 | 2eb3590d17fc53544cd3aa861918ac1682e5c7607bdb1a95c20f21a6b13be9df |
Hashes for moss_decoder-0.5.1-cp37-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 734f641caa762d630521534431ca8f2a9da7674c617fded0e83ea05c9d8e10e5 |
|
MD5 | eb1b4947921e95cd1b3d8c24dab5cf81 |
|
BLAKE2b-256 | c70959d42f042df4434a4ca5a9b91c3546d2afdbf900ca58d002c0f8ba01a689 |
Hashes for moss_decoder-0.5.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51a7d402a28378da1c9c85a5be3d973a77d77fd3f657e01d3d44c232fee21071 |
|
MD5 | 5f601902916e00be67fd6a914bbaf07b |
|
BLAKE2b-256 | 20292d01065fd63f933259ec5a96e0bd2051c598543a9ff3ef64be348eb398dc |
Hashes for moss_decoder-0.5.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7541162813f5d4856409b2758c7c9117af53e84a03d8e1d85fb39ab2e9ccfa25 |
|
MD5 | 9115cc25b458ae9e7f4f191e4f9e58d3 |
|
BLAKE2b-256 | 1eaa6fceb921f02e35e98c384098fe68a9180d4d187b862e3b5dc98baf97b03e |
Hashes for moss_decoder-0.5.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b245448799579007b624953b7e64da7f454611d0fdbf0f59584835c5f15dea0 |
|
MD5 | a1a6a03cd2ce17a5ccd0f7b1cc00831a |
|
BLAKE2b-256 | 2e951c3316b532bcb286c2da94bc32cf38f67dfc0b83a44891f4d891d3dfe9df |
Hashes for moss_decoder-0.5.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f6680205b651aa73d357c0c5699356821ac110ad8201d4875a051aabf9d86a3 |
|
MD5 | 5c4e0115f2e92491298840e4664b28f3 |
|
BLAKE2b-256 | 948b821782e35730a92e258949c4ce346eeffa583ce914e656a6913231051e75 |
Hashes for moss_decoder-0.5.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34f3667f578b992cf2606048d81a1ded268858ee18e6649bfe6e1cbbbf52b1c5 |
|
MD5 | 97e25abe368faa8b5b9ad231c3482d91 |
|
BLAKE2b-256 | 09c31791618f438dafc5b301ac967f142473294bfb166e7cec57ef86fed0c086 |
Hashes for moss_decoder-0.5.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4836044422e99c51fbe2cdfa473bd8f494ae819c7548c3edf8cfa10d36d3d0dc |
|
MD5 | cab6529e1c3aed88196166207dc8b5ac |
|
BLAKE2b-256 | db722ea3061347f9a27deca2fb3fb600d12e7b598cbcd229c4af6795190a5784 |