Skip to main content

msglc --- (de)serialize json objects with lazy/partial loading containers using msgpack or cbor

DeepWiki codecov PyPI

What

msglc is a Python library that provides a way to serialize and deserialize json objects with lazy/partial loading containers using msgpack or cbor as the serialization format.

It can be used in environments that use msgpack/cbor to store/exchange data that is larger than a few MBs if any of the followings hold.

  1. After cold storage, each retrieval only accesses part of the stored data.
  2. Cannot afford to decode the whole file due to memory limitation, performance consideration, etc.
  3. Want to combine encoded data into a single blob without decoding and re-encoding the same piece of data.

Quick Start

The supported objects need to be json compatible, including dict, list, str, int, float, bool and None. Extra types may be supported as well but not guaranteed.

Serialization

Use dump to serialize a json object to a file.

from msglc import dump

data = {"a": [1, 2, 3], "b": {"c": 4, "d": 5, "e": [0x221548313] * 10}}
dump("data.msg", data)

Use backend='python' or backend='rust' to specify the backend for serialization. By default, msgpack is used as the serialization format, to use cbor, use the corresponding packer.

from msglc import dump
from msglc.codec import CBORCodec

data = {"a": [1, 2, 3], "b": {"c": 4, "d": 5, "e": [0x221548313] * 10}}
dump("data.msg", data, backend="rust", packer=CBORCodec)

Use combine to combine several serialized files together. The combined files can be further combined.

Combine as dict

from msglc import dump, combine, FileInfo
from msglc.reader import LazyReader

dump("dict.msg", {str(v): v for v in range(1000)})
dump("list.msg", [float(v) for v in range(1000)])

combine("combined.msg", [FileInfo("dict.msg", "dict"), FileInfo("list.msg", "list")])
# support recursively combining files
# ...

# the combined file uses a dict layout
# { 'dict' : {'1':1,'2':2,...}, 'list' : [1.0,2.0,3.0,...] }
# so one can read it as follows, details in coming section
with LazyReader("combined.msg") as reader:
    assert reader["dict/101"] == 101  # also reader['dict'][101]
    assert reader["list/101"] == 101.0  # also reader['list'][101]

Combine as list

from msglc import dump, combine, FileInfo
from msglc.reader import LazyReader

dump("dict.msg", {str(v): v for v in range(1000)})
dump("list.msg", [float(v) for v in range(1000)])

combine("combined.msg", [FileInfo("dict.msg"), FileInfo("list.msg")])
# support recursively combining files
# ...

# the combined file uses a list layout
# [ {'1':1,'2':2,...}, [1.0,2.0,3.0,...] ]
# so one can read it as follows, details in coming section
with LazyReader("combined.msg") as reader:
    assert reader["0/101"] == 101  # also reader[0][101]
    assert reader["1/101"] == 101.0  # also reader[1][101]

Deserialization

Use LazyReader to read a file.

from msglc.reader import LazyReader, to_obj

with LazyReader("data.msg") as reader:
    data = reader.read()  # return a LazyDict, LazyList, dict, list or primitive value
    data = reader["b/c"]  # subscriptable if the actual data is subscriptable
    # data = reader[2:]  # also support slicing if its underlying data is list compatible
    data = reader.read("b/c")  # or provide a path to visit a particular node
    print(data)  # 4
    b_dict = reader.read("b")
    print(b_dict.__class__)  # <class 'msglc.reader.LazyDict'>
    for k, v in b_dict.items():  # dict compatible
        if k != "e":
            print(k, v)  # c 4, d 5
    b_json = to_obj(b_dict)  # ensure plain dict

Please note all data operations shall be performed inside the with block.

All data is lazily loaded, use to_obj() function to ensure it is properly read, especially when the data goes out of the with block.

If there is no need to cache the read data, pass the argument cached=False to the initializer.

from msglc.reader import LazyReader, to_obj

with LazyReader("data.msg", cached=False) as reader:
    data = to_obj(reader.read("some/path/to/the/target"))

Why

The msgpack/cbor specification and the corresponding Python library msgpack/cbor2 provide a tool to serialize json objects into binary data. However, the encoded data has to be fully decoded to reveal what is inside. This becomes an issue when the data is large and only a small part of it is needed.

msglc provides an enhanced format to embed structure information into the encoded data. This allows lazy and partial decoding of the data of interest, which can be a significant performance improvement.

How

Overview

msglc packs tables of contents and data into a single binary blob. The detailed layout can be shown as follows.

#####################################################################
# magic bytes # 20 bytes # encoded data # encoded table of contents #
#####################################################################
  1. The magic bytes are used to identify the format of the file.
  2. The 20 bytes are used to store the start position and the length of the encoded table of contents.
  3. The encoded data is the original msgpack encoded data.

The table of contents is placed at the end of the file to allow direct writing of the encoded data to the file. This makes the memory footprint small.

Buffering

One can configure the buffer size for reading and writing.

from msglc.config import configure

configure(write_buffer_size=2**23)
configure(read_buffer_size=2**16)

Combining multiple files into a single one requires copying data from one file to another. Adjust copy_chunk_size to control memory footprint.

from msglc.config import configure

configure(copy_chunk_size=2**24)  # 16 MB

Table of Contents

There are two types of containers in json objects: array and object. They correspond to list and dict in Python, respectively.

The table of contents mimics the structure of the original json object. However, only containers that exceed a certain size are included in the table of contents. This size is configurable and can be often set to the multiple of the block size of the storage system.

from msglc.config import configure

configure(small_obj_optimization_threshold=2**20)

The above configuration assigns a threshold of 1 MB, containers larger than 1 MB will be indexed in the table of contents. To achieve optimal performance, one shall configure this value according to the underlying file system.

The basic structure of the table of contents of any object is a dict with two keys: t (toc) and p (position). The t field only exists when the object is a sufficiently large container.

If all the elements in the container are small, the t field will also be omitted.

For the purpose of demonstration, the size threshold is set to 2 bytes in the following examples.

# an integer is not a container
data = 2154848
toc = {"p": [0, 5]}

# a string is not a container
data = "a string"
toc = {"p": [5, 14]}

# the inner lists contain small elements, so the `t` field is omitted
# the outer list is larger than 2 bytes, so the `t` field is included
data = [[1, 1], [2, 2, 2, 2, 2]]
toc = {"t": [{"p": [15, 18]}, {"p": [18, 24]}], "p": [14, 24]}

# the outer dict is larger than 2 bytes, so the `t` field is included
# the `b` field is not a container
# the `aa` field is a container, but all its elements are small, so the `t` field is omitted
data = {"a": {"aa": [2, 2, 2, 2, 2, 2, 2, 2, 2, 2]}, "b": 2}
toc = {
    "t": {"a": {"t": {"aa": {"p": [31, 42]}}, "p": [27, 42]}, "b": {"p": [44, 45]}},
    "p": [24, 45],
}

Due to the presence of the size threshold, the table of contents only requires a small amount of extra space.

Reading

The table of contents is read first. The actual data is represented by LazyDict and LazyList classes, which have similar interfaces to the original dict and list classes in Python.

As long as the table of contents contains the t field, no actual data is read. Each piece of data is read only when it is accessed, and it is cached for future use. Thus, the data is read lazily and will only be read once (unless fast loading is enabled).

Fast Loading

There are two ways to read a container into memory:

  1. Read the entire container into memory.
  2. Read each element of the container into memory one by one.

The first way only requires one system call, but data may be repeatedly read if some of its children have been read before. The second way requires multiple system calls, but it ensures that each piece of data is read only once. Depending on various factors, one may be faster than the other.

Fast loading is a feature that allows the entire data to be read into memory at once. This helps to avoid issuing multiple system calls to read the data, which can be slow if the latency is high.

from msglc.config import configure

configure(fast_loading=True)

One shall also configure the threshold for fast loading.

from msglc.config import configure

configure(fast_loading_threshold=0.5)

The threshold is a fraction between 0 and 1. The above 0.5 means if more than half of the children of a container have been read already, to_obj will use the second way to read the whole container. Otherwise, it will use the first way.

Detection of Long List with Small Elements

Longs lists with small elements, such as integers and floats, can be further optimized by grouping elements into blocks that are of the size of small_obj_optimization_threshold so that small reads can be avoided.

Set a trivial_size to the desired bytes to identify those long lists. For example, the following sets it to 10 bytes, long lists of integers and floats will be grouped into blocks. 64-bit integers and doubles require 8 bytes (data) + 1 byte (type) = 9 bytes.

from msglc.config import configure

configure(trivial_size=10)

Disable GC

To improve performance, gc can be disabled during (de)serialization. It is controlled by a global counter, as long as there is one active writer/reader, gc will stay disabled.

from msglc.config import configure

configure(disable_gc=True)

Default Values

from dataclasses import dataclass


@dataclass
class Config:
    small_obj_optimization_threshold: int = 2**13  # 8KB
    write_buffer_size: int = 2**23  # 8MB
    read_buffer_size: int = 2**16  # 64KB
    fast_loading: bool = True
    fast_loading_threshold: float = 0.3
    trivial_size: int = 20
    disable_gc: bool = False
    simple_repr: bool = True
    copy_chunk_size: int = 2**24  # 16MB
    numpy_encoder: bool = False
    numpy_fast_int_pack: bool = False

Development Environment

A working rust environment is required. Install it following the official guide here.

Once rust is installed, run the following command inside a Python environment.

pip install maturin
maturin develop

Alternatively, use the following.

pip install -e ".[all]"

Not all optional dependencies are universally available, some may not be available on platforms other than CPython.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

msglc-260821.tar.gz (46.9 kB view details)

Uploaded Source

Built Distributions

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

msglc-260821-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (336.0 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

msglc-260821-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (332.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

msglc-260821-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (331.1 kB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.17+ x86-64

msglc-260821-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (331.3 kB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64

msglc-260821-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (331.1 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

msglc-260821-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (325.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

msglc-260821-cp314-cp314-win_arm64.whl (196.1 kB view details)

Uploaded CPython 3.14Windows ARM64

msglc-260821-cp314-cp314-win_amd64.whl (198.0 kB view details)

Uploaded CPython 3.14Windows x86-64

msglc-260821-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (331.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

msglc-260821-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (326.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

msglc-260821-cp314-cp314-macosx_11_0_arm64.whl (300.8 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

msglc-260821-cp314-cp314-macosx_10_12_x86_64.whl (306.3 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

msglc-260821-cp313-cp313-win_arm64.whl (195.9 kB view details)

Uploaded CPython 3.13Windows ARM64

msglc-260821-cp313-cp313-win_amd64.whl (197.4 kB view details)

Uploaded CPython 3.13Windows x86-64

msglc-260821-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (330.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

msglc-260821-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (325.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

msglc-260821-cp313-cp313-macosx_11_0_arm64.whl (300.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

msglc-260821-cp313-cp313-macosx_10_12_x86_64.whl (305.2 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

msglc-260821-cp312-cp312-win_arm64.whl (196.2 kB view details)

Uploaded CPython 3.12Windows ARM64

msglc-260821-cp312-cp312-win_amd64.whl (197.8 kB view details)

Uploaded CPython 3.12Windows x86-64

msglc-260821-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (330.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

msglc-260821-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (325.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

msglc-260821-cp312-cp312-macosx_11_0_arm64.whl (300.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

msglc-260821-cp312-cp312-macosx_10_12_x86_64.whl (305.9 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

msglc-260821-cp311-cp311-win_amd64.whl (200.3 kB view details)

Uploaded CPython 3.11Windows x86-64

msglc-260821-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (334.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

msglc-260821-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (330.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

msglc-260821-cp311-cp311-macosx_11_0_arm64.whl (306.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

msglc-260821-cp311-cp311-macosx_10_12_x86_64.whl (306.4 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

msglc-260821-cp310-cp310-win_amd64.whl (200.0 kB view details)

Uploaded CPython 3.10Windows x86-64

msglc-260821-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (334.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

msglc-260821-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (331.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

File details

Details for the file msglc-260821.tar.gz.

File metadata

  • Download URL: msglc-260821.tar.gz
  • Upload date:
  • Size: 46.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for msglc-260821.tar.gz
Algorithm Hash digest
SHA256 e430bb0eeaa70606e7e3796bdf911168e91913dfa30c123174b86149c60b071e
MD5 38ecd4fc0552bfbed0e8b959ca9132bc
BLAKE2b-256 e21221b972e44672ffa3fcfb1219704c42ce65d6c3dc0141edf4c083bb8be288

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821.tar.gz:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260821-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ff31ff2f2ebc8b20fc98dc92d6914eaf1c4613236e63b034ef45c259faf9ddce
MD5 b841508ba021230bca7fd9b9a9e4da0b
BLAKE2b-256 82f4a67b28751302cf5880018c22bb01d6edad2fa3b00ad69c900c02ce2ccdd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for msglc-260821-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a875945835ae0d165161b7bcfe4d3c621033c637733ccc9787b333d05dd28327
MD5 548197e94847f757f17b241d578035d8
BLAKE2b-256 586aaf3566e69a29ceff140f9952a460591add1d577e5c5c882bbfaae14c500c

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e70c669dee6658ac847ca67f56544cc3127e8dfa38fe7db0de6009b74bad8c06
MD5 e6b84fe78f8a217307a5b78ea3021d9a
BLAKE2b-256 7b91766a9ba4c2258cd309a5a10b1112d7a450e01207e05556fea7fb05ae28cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8e553221c59fe09671cc95c8e0d30002d7a9e07e88122f20bc973ba0d53d2e15
MD5 3495195b852e38cdfb0b7926870d521a
BLAKE2b-256 cff459ab10b5d8e5989723afaac93aa932122f6bca0c41af412b59dfd3770a27

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e4a6a29f110598407be08d23f84c266d62dc2f7f8c7165cfb067c7e27eb26d2b
MD5 e97d4345c0077515a6d1b23110d738e3
BLAKE2b-256 d4c2e43cd62ce2ea6b1e44de49b1946e8b187c1a1b8fb10dd2936e4c4612db7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9f222a34306ccb08821d267cda1638f31e892b238b28578ecedf25941b9f33a7
MD5 e9a6ae0ef01a780d371fcc47b3f39124
BLAKE2b-256 27e3c0a400917d33d65951d75a7b5485a78d24f5541ddae4cfda5773a0944ef1

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: msglc-260821-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 196.1 kB
  • Tags: CPython 3.14, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for msglc-260821-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 92b3e5487f234c2a066e14fe3f93026f6aff5b403d7efd858147ef636df95b35
MD5 e031911475444a171e115dd9f1e595db
BLAKE2b-256 89359acae68b362c45f1fb27ce42f2645cb917229f7969c10515af45d70bc004

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp314-cp314-win_arm64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: msglc-260821-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 198.0 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for msglc-260821-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 06d6fd83ebdfaf0a51438e12c013d100c9b4fa9daa3b196f3153ef120ee4454e
MD5 b9bfdecf45884a6922aa67ac6131e579
BLAKE2b-256 1dd9c1bf21ecf8c3b28e88527595567a6a09bd176f3228f96114cab20300702e

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp314-cp314-win_amd64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7b5052f4e130449b860f73c8a69b81a1a21e4cae020c09fdd3965192e84c9721
MD5 7666da64efcd9e2bc1a1ab579a16cba1
BLAKE2b-256 e27c12793d438be55d30fa52ac185f77e411c6e91c616213c86a8b350ea17888

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0f93a3b15b309869c6578615b23cbf5076c50c292d9959a7db21e9c78e621aa5
MD5 c8b9efe2b016e05c25c522f964049c5f
BLAKE2b-256 e33b2ef2b379a935af3e2d8a921109f53ab44055695ec489d1ce92026575416c

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eb811ec1bff25533db178ebd4bcb322f5dfa9fc01de5b25f24e4759f0de7c0ae
MD5 9f90c4d7f118191f3af562e40d167b77
BLAKE2b-256 3bbbefb64e00dfd3d432cbe51af3ae23e74481d2afedad79ac49a0b3793f7799

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d0bcdbdde24b6f165d9abfccb45de6329b727c6074e99e0749a6d83634d6261c
MD5 7757e4f07866f862d0f9137f306f349a
BLAKE2b-256 233222955f9c3047eecdeaf2babaae17da595d6f06b7304300c752f7cc9c093a

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: msglc-260821-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 195.9 kB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for msglc-260821-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 2802a3822660ddf7fba3d4b7cddb24cf571b428addeef970455bd637da4b57fc
MD5 ccfe6cdd810877d92da3e02e9268170e
BLAKE2b-256 4f75f3de84068dde6381a495f79a37d2b994e3fdcb1dba68580290e78cae2def

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp313-cp313-win_arm64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: msglc-260821-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 197.4 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for msglc-260821-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 848983fc19994922ad774673e5e2de200d7072d1b430cb0a55d82ca57bca8b31
MD5 41c9a9ee6514473d23900a44e977ae53
BLAKE2b-256 48b0734ef26a3fe739724bad99fa678695ac506fe23a5eb9af7275db4ed83ca4

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp313-cp313-win_amd64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9ce4e76e8a7215fb94bb7cbf9bc944556d59fc67ec5947276e19808a7a862e22
MD5 044b279ed428f5e2aaefb332adcea65f
BLAKE2b-256 6f049025e48f7e758a30adbc9afcea971b2de945786294562c5fcc0b406f3354

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5131085aef2f2ceda60b602da84394d9e4e4c45f78c44865857f90bf5c21e7b7
MD5 f2b8a1aac57ad1d165710227f430bb5c
BLAKE2b-256 d01c083d2b328fcd5244d362c088cff0c01999281e0b7ca5e0fa919cc5678332

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ad43792314dadb0dce87b119d047e164f2d7d16d6657d496732c84aaf33d1286
MD5 48d6d63e16d57075a4a0010b12e5b5a9
BLAKE2b-256 81f66f307ad4dfdf1f77777642012a5d2b591969ca3cc0acca7bc8c2f2bf74e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1b3067932e486a337cccca8074c291338a4ad27c403c4284721b7b8e5bab18e4
MD5 f0700cacd00a6b06d0decf1b40a36e8f
BLAKE2b-256 f16d8edf98c24f0436c89d5488753b0fb39c305048e01c6613b8fa97ec680cd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: msglc-260821-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 196.2 kB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for msglc-260821-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 06c48a332f850b7410baf2cf676cc9c66c1be8f4656a8d739266685be1ecbcae
MD5 efde9487db7f2701fd30a72ddc38a98c
BLAKE2b-256 eae9f475513dfc9b0d48edafb19e5a50a415a9a1a639427d55e79c0cbe44ee7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp312-cp312-win_arm64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: msglc-260821-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 197.8 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for msglc-260821-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 52e7c84b42cb332506e983588f910de32f98471803d7af49dfe1aa5c2c350e7a
MD5 e7da8d4f4f246855d2467f2dff58f771
BLAKE2b-256 8a343681ae9198f35403a7a11556530d69f4ac1a47763860232ef3deecd3b5c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp312-cp312-win_amd64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 137ee9714e4274a725bb0a99881f7fa954e9ccfe45c31c0f7c575be340d54760
MD5 a1b2cbfa2101201dda6ddf2a99dd73e5
BLAKE2b-256 c2ba6e59eec4170ba2fe9d6b135886e9d3b502e31c4e1ca9dfe88592550d677a

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8dadb10184487cca9aa9b4facdabbc0bd213fb3fcc09380265a1d408054b0320
MD5 fc324771877a2469566d3f954304fb99
BLAKE2b-256 ca4bfa808306fb0cba9f7e18122a0ec571debda98902fe6d0d90ad7caabee691

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fdcaa12c18dcad59f927d110ac0ce291687ff01ea0a1236fe356fd07d43128fa
MD5 eef1048ff50cd5b6035faafdc4a62ab3
BLAKE2b-256 4bfb2dc3418db79cce2bc5206c9ac5323c31c426e66d1bb5e6765e9b14f6938c

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 29108f54f555f38e167cf98b0bf1dbdde3e8e704a6c105e82a82971ba047d22f
MD5 367ea4a0ab78210eb08a0ad379da1874
BLAKE2b-256 f6fed4233ceaced2c4ed30ccf72651a97c75d545b82db2f95c258aaf6952b1e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: msglc-260821-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 200.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for msglc-260821-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4e97c1bbb969d8cbd8977135676218a1be80bf55c3aac85634ba4fbdc07794a9
MD5 0b4032061c1aa43e1839bec91a3db9fa
BLAKE2b-256 6a52c5a832bdda509ee5d5722f2493c31630e13ea716a69488627cbea002200d

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp311-cp311-win_amd64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d6bb4ac1a3365c4d1060289807ea3cbb2bc55c035cfdde4aac48104724d940ad
MD5 be5c862c5e9dc3da0014bab1902a2f1e
BLAKE2b-256 dc18c63aa3f32cc40c2b2af463b467efdedd46b3eed9d930a62b4b2edd504fc5

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 06fe892a6dd8d06b8de9c08df83ee1164c1466b5317ae2b4f38475614432e753
MD5 4f10fd80fc1e8ba64ac95d617035184d
BLAKE2b-256 c403ddc21238788c0581a00d2e70468fb8c69aecc0370ecedf38242add59201d

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4011e189c22f7d173bcd2c99d283fe0fe67e8d002a7c8e45676f4ca297b19603
MD5 fb02100a86a51269557c4c91b54855cd
BLAKE2b-256 c1252d3aa601a4648c0dcf5dffbe1315f77243516fac74bb7466a42138c1b526

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1be7014856bc3a5ad079964eb4f6b50daabc71087f07978640f50c2fa3038839
MD5 63512d8abfe587a73629111eb14f314b
BLAKE2b-256 5481e4a9704f7a67857d06ef2192d153a94439906854f228a826ee756668a736

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: msglc-260821-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 200.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for msglc-260821-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2e46ea5ee6096e13c52f34bf88b549cfa8b4ed263040cb30a1d27cf1de5659ce
MD5 4313e1676c9ea56763dc2d8de3356a70
BLAKE2b-256 b4ef709a351cee04c21cf50807abc0afac1ddf3c95a56cd323a4f5ba695c3a44

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp310-cp310-win_amd64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b8ef831d0f8007ec1196f7adfaf8a3c8f8a63751c481ce11e3c6d49df5eb1166
MD5 355755b29ccfbd5e025a42abcb1e10dc
BLAKE2b-256 d23650a6bab7db0394cda09cf5dca8efc3ee7ec9d957818e2cf0a0a203916271

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

File details

Details for the file msglc-260821-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for msglc-260821-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cc456dadb62cf8d68919b266acc9f0b4adc4021b7c07fd05458b02dc8dd4f140
MD5 b34029fb459d1ea9a6f9889986558554
BLAKE2b-256 09b2f996923c6f7a41897fe2b8518b3ad4e82f6e5bb530ab8168abb4751178c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for msglc-260821-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: coverage.yml on TLCFEM/msglc

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

Release history Release notifications | RSS feed

260825

33 files

260824

33 files

This release

260821 This release

33 files

260820

32 files

260819

30 files

260818

30 files

260423

31 files

260412

1 file

260319

1 file

260317

1 file

260315

1 file

260201

1 file

260115

1 file

260103

1 file

251227

1 file

251222

1 file

251009

1 file

250419

1 file

250314

1 file

240630

1 file

240330

1 file

240317

1 file

240316

1 file

240312

1 file

240308

1 file

240307

1 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