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-260824.tar.gz (46.8 kB view details)

Uploaded Source

Built Distributions

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

msglc-260824-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (339.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

msglc-260824-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (335.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

msglc-260824-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (334.2 kB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.17+ x86-64

msglc-260824-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (334.3 kB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64

msglc-260824-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (333.9 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

msglc-260824-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (327.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

msglc-260824-cp314-cp314-win_arm64.whl (194.8 kB view details)

Uploaded CPython 3.14Windows ARM64

msglc-260824-cp314-cp314-win_amd64.whl (197.8 kB view details)

Uploaded CPython 3.14Windows x86-64

msglc-260824-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (334.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

msglc-260824-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (328.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

msglc-260824-cp314-cp314-macosx_11_0_arm64.whl (300.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

msglc-260824-cp314-cp314-macosx_10_12_x86_64.whl (304.7 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

msglc-260824-cp313-cp313-win_arm64.whl (194.5 kB view details)

Uploaded CPython 3.13Windows ARM64

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

Uploaded CPython 3.13Windows x86-64

msglc-260824-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (333.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

msglc-260824-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (328.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

msglc-260824-cp313-cp313-macosx_11_0_arm64.whl (299.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

msglc-260824-cp313-cp313-macosx_10_12_x86_64.whl (303.8 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

msglc-260824-cp312-cp312-win_arm64.whl (194.9 kB view details)

Uploaded CPython 3.12Windows ARM64

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

Uploaded CPython 3.12Windows x86-64

msglc-260824-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (334.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

msglc-260824-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (328.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

msglc-260824-cp312-cp312-macosx_11_0_arm64.whl (299.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

msglc-260824-cp312-cp312-macosx_10_12_x86_64.whl (304.4 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

msglc-260824-cp311-cp311-win_amd64.whl (200.2 kB view details)

Uploaded CPython 3.11Windows x86-64

msglc-260824-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (337.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

msglc-260824-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (333.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

msglc-260824-cp311-cp311-macosx_11_0_arm64.whl (305.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

msglc-260824-cp311-cp311-macosx_10_12_x86_64.whl (305.3 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

msglc-260824-cp310-cp310-win_amd64.whl (199.6 kB view details)

Uploaded CPython 3.10Windows x86-64

msglc-260824-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (337.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

msglc-260824-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (333.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

File details

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

File metadata

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

File hashes

Hashes for msglc-260824.tar.gz
Algorithm Hash digest
SHA256 70cff177ccef429735bda6df34f233ae57b40a4dfb1ea3cf2f201e8209b0dd5c
MD5 92e325ae8fe5cdcee681ad75065a8b68
BLAKE2b-256 80bd6db1d46db8b1aa011e38b454d9240440b1950bd0ef0f382bccd4ecebed63

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260824-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9e3e355709329a8b9f7df41f1febf55a4b2215ca4cbdd4f5783c6edb14b49fb8
MD5 1088094f98559ba563bd2cb411556c51
BLAKE2b-256 a9b343d230511874993387b5a206ebd8240ead9d5761d37ff1b7165d4518a9bb

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for msglc-260824-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1c260a3c87d6c42cb5efa4f18f43338c9c9cd3c34632479b54d011c01892ac61
MD5 0ce56953828ebe9fa70f2cd229ba45e2
BLAKE2b-256 fccc967927a6e69f78dbd3d4f8e61044a987821a362bac864fdd8edf624d5048

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7ead427b69a800348e013f2671f0a61efd9cace32714a3e070fd67c0e2253c0b
MD5 5a808ae703772e15c497e38952e2deba
BLAKE2b-256 3fac653a664a516473bcd6440fe9ca55f47e986daa2d506e8d8f40af8f25d6e0

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bd1188d2b00913b6fb171cec47575607601752f5cc671779946c9af9e045977f
MD5 ddef7b2892caa3742c67f4d0097c446f
BLAKE2b-256 b8a19a0e2e350d568785d4a412288a6bfbda6c482660cb38bdc545c2137ff78c

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fd63824e7815e130d5e6f5a4c8b87029c57eb1f790197af5924cceb72cd098f1
MD5 4d7f345a50b776d5652b9e8e5f7edab4
BLAKE2b-256 3b1101de2bc3c4b44bf4d9dc3a45a94de4380fd4e5199fe0e298638aaef275a5

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9e8247d930929f8a0d23cd35c4fbf1fefa4264ed5358d4c22fc744c005d3ffd7
MD5 ab285731f28f12a748b1b49c306d67aa
BLAKE2b-256 a1ce5c01d98fcbc5c7f19994b66560887ec628eefd4c71cebf35ba798e4c0065

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: msglc-260824-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 194.8 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-260824-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 90978ef1409f6d222fe513d00ee2a80d7fa82b38d58baa123408224fde0cc4eb
MD5 e2a5144d4cf11e60d77ecada27d0f91b
BLAKE2b-256 4a649de4a68a8bc848345b6b61218bb489314fcdf529c8cc8b355d45c029cdd4

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: msglc-260824-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 197.8 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-260824-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 9e76cb80d5c3c75822a9abefa8b74170471071787c6629dfba0dd78c9071aa30
MD5 f6c56aef62efc0238282dc4d62d880db
BLAKE2b-256 c4d7e6ec2d038002936ece03362ed35e72b693fc98e7d8eca740cd117cc7fe43

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5fca5bf816de738d9a791dbb2e3eb64aa0d41e16cbec8309bfdb23abfd7ca8be
MD5 a9243f3bb593d6400645e0d38e83c257
BLAKE2b-256 dbbff1e30cb33f2ea0c40690918c9b54cf5646ff4c4b1b35d7bcbd453c1142c0

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0faac74e3e81fa35b577e6d8dfc85140bbc80f55d2c7cb44fd039267d71cff8f
MD5 07fd4ea476ffd31c091dceae8cd8d766
BLAKE2b-256 211eaa3ef2124013ec588987a1bc9721c821bfaf7b69aa54429466cc62f6c7a7

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 49b1dfa1e1c73fb5466216685e6f35b0c6adacdef2285dad62d8d0801e2630dc
MD5 4fe94ec041bb43d232d42e9e03d99127
BLAKE2b-256 65ae036af480def5048968114fca1cc96ea2ee950d5d9b62407fcddfc6cb8cb8

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3c4cf8be0ad9a0659db07ce612a2e629ca107c85c5315a936503fe4e5102092d
MD5 3b1056f0102ae1d89ab4959ecd5d79fe
BLAKE2b-256 dbd22d99d0d10bd4f2df2ec4718fa49da2fe0595a7365fd25a9d8172b09e9205

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: msglc-260824-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 194.5 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-260824-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 6a5e809e6f010c84633fe2d891a795ad786390b7d92718982e93a433f9786009
MD5 5d854a59f8618bc83fc7fd8a272c4c3f
BLAKE2b-256 6b3a2680b65f4303e99c84c96ec218351ef6c8a0e038d7123f14648a0b82d8f2

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: msglc-260824-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-260824-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9a51777039de9c3ac3e43109731eabe9a2214586912c793716bb56b7f38bf9ee
MD5 4994399edfdab66ba90ebb52c62bbfc2
BLAKE2b-256 1b47f3df8acd993b3f9bd7e5998a757e7bc2b5a8cd61d9ffce8d18d44998533b

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 404f1ab2aa53cf0aef407f57125ee37c2d5c1070892549b465c71756612e32da
MD5 0fff1d678de9bd8724266efd855cbd45
BLAKE2b-256 1bb623c8c0e0789ff3ba5d6452b4964cc8a3a8187eb27a4de0c5178dde7fe7ef

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8bb4635b7a051e057abd2bb885e2418232ada608c7965fbcd6282cc5e8db8df7
MD5 582e26cd73fe0d612eb1e1cffca13dca
BLAKE2b-256 93dbc79ede0f1b07fe989353d7468fc5001e8065b7ba5e115af92b7e0815d3fc

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c006c879d99ff6cb7f54b670f382b0298cb03c2717f6ce8a8c40391e410abba1
MD5 d150d9d9795a8b32672d7cf96329d0a4
BLAKE2b-256 6390038f24392e7a1d33ad9bda2655825f1667b298ccf1a742ec2f1444bc9966

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2c98b2d41b07a2fca8f26b0c026ea37b8206d1f7fbc7ddc3c856681933d64dfb
MD5 d473098f279e7519b6b96621c4547922
BLAKE2b-256 57fdceaa2dae5d34ca7cc3d08b2ff905365c92e3f60d6d2178f57c6c633418dd

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: msglc-260824-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 194.9 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-260824-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 ddc2e2e1fa079351a23cad179c0f8f5862ea13e1d3704db8a5a434b2f66c3910
MD5 eba252bfc36cf4c7ccf55ee3eb10def8
BLAKE2b-256 9512693bed1ba40836392d150f12a72f6a71a6dcab3fa876c0eb6c15f46cad05

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: msglc-260824-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-260824-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 91fb3f3377cb4ebc88a13c50b8317b58d350b21dd8084d1de94a08a6b8d33ab8
MD5 825bea9749339c2c456c0f8c30ff5504
BLAKE2b-256 cf4568233511a2a7e23673d72662f03ce4710fc7902b696a9b0fa8ee5d027da2

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1c9d766705844e9546e334a1b8af89e992a76a02e128546cb9bb9dc16e2f123a
MD5 a329261ef02b2c05f6152fee049cdbb4
BLAKE2b-256 95649bb0656282b96f9e6ebdaf40a792bb74da6e0508d7b4692783275f894bdd

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dc5fb757b267bba2f93cce48f4807e6913de59abfb697698ae3b75a6cc1852af
MD5 34011e81567c6a6e9ead615fa5d7318a
BLAKE2b-256 02c14d4f4ae0529d97aa59cc7fd30579ea1cc1ce529cca483e178b47b32580d8

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cd8057b150aa54edf73ec3aa388f808edd7500030a22e5ea053274330e1bf8f3
MD5 43051d0c91b1399afabb29e6cd86ee66
BLAKE2b-256 ccf8498312cb0c299a08b02a9500e82f09fcbcfd94b648159bbb7e6b35777927

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 35a13a48b4027c46c38e56410f53ca14eb351843034d6f3ba0732dc959e504f2
MD5 988e0a13c7b70405f1df84f550d21300
BLAKE2b-256 1939b9dd59bde5e507d32ffbffec795d421a442b9ec368bda9baa1812d6f9a0c

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: msglc-260824-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 200.2 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-260824-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4667692729811af017fd23ebc145c4e95392ee7071b62582e874633096011019
MD5 53fe5d9a8c1f79aa4714e94546f18916
BLAKE2b-256 5ca923cec5dd170f11b5fcab8abc05d817d9f2cdf4d0b74ad50f7eb664de9584

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dc65e6bc059678a95bcdd4f94cfa6b6e0ac773123f95a6286da0efcb4bc7209a
MD5 b9d3606a3d63e27411034084325c1b71
BLAKE2b-256 7786ec0d6f00b956f9cfedd3d46c66612df3e618ba636e5d3355f5737e90fcba

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9cf5ca5dc90fb613fe9a16a39d502235e8a17d7f150f06bd19c25b02642cd9c5
MD5 5052951a198262994e76520b50cc53a3
BLAKE2b-256 c51d675f4778c3bf2aa86d7fb1e2e3cbc4158e1870571209422c7389e9aa161a

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9df22c770ca375201e68d97c2a3a2831d9f43a0859f6564ddd5a15a8cb041649
MD5 22f25b86fd4ca63e6089b087d66194c9
BLAKE2b-256 4cfb6dd6b8bf37b2e1f7d4adb8c45c0a9fc67d5033abeec0524326ab12ccf814

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e0b657f3b881623b9ac3a735cc410bcea645d335e296e3143dd1e784237ead6c
MD5 1918d3a5d616ca971dee45d8ea331e58
BLAKE2b-256 c77106afaffbb18fbfb44ad77d5533f2d0047f4c92b99c9ab9cb78099a17aa61

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: msglc-260824-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 199.6 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-260824-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 87c8466ea0336061c3811cbba1f2201dfb74757e454a1a70128117f17e1ee677
MD5 4b897ded78fbbdc5035e47cc6733a8f5
BLAKE2b-256 31a1e536a3887690ae4c98838b0450410875d295649c1b0eb7fc53c2b4544b68

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 60fdd5fb3cd658992f1564bb05387cfa83259b7817c20fb75c19fa652d2b7eb2
MD5 78fc31b501d80bce40178392cc077751
BLAKE2b-256 d302af8a5f11bb57d0d63a277f848de60b1c361c181e6d82feda646460b018e4

See more details on using hashes here.

Provenance

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

Publisher: publish.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-260824-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for msglc-260824-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8350d8c814f5a944acba8d4c7d7fabb1996e45b0a929ae12f41d3824e615befb
MD5 b26b6050e0f04de2eb5bdf07e55d2b34
BLAKE2b-256 a81cbcf1d17d9917dc7a7787c998fc42ff96cd9601af13c774f2fa8c916dbaa4

See more details on using hashes here.

Provenance

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

Publisher: publish.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

This release

260824 This release

33 files

260821

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