Skip to main content

License: MIT Python 3.10+ Release PyPI Python package

Icegrams: A fast, compact trigram library for Icelandic

Overview

Icegrams is an MIT-licensed Python 3 (>=3.10) package that encapsulates a large trigram library for Icelandic. (A trigram is a tuple of three consecutive words or tokens that appear in real-world text.)

Over 78 million unique trigrams and their frequency counts are heavily compressed using radix tries and quasi-succinct indexes employing Elias-Fano encoding. This enables the ~213 megabyte compressed trigram file to be mapped directly into memory, with no ex ante decompression, for fast queries (typically ~10 microseconds per lookup).

The Icegrams library is implemented in Python and C/C++, glued together via CFFI.

The trigram storage approach is based on a 2017 paper by Pibiri and Venturini, also referring to Ottaviano and Venturini (2014) regarding partitioned Elias-Fano indexes.

You can use Icegrams to obtain probabilities (relative frequencies) of over 1.7 million different unigrams (single words or tokens), or of bigrams (pairs of two words or tokens), or of trigrams. You can also ask it to return the N most likely successors to any unigram or bigram.

Icegrams is useful for instance in spelling correction, predictive typing, to help disabled people write text faster, and for various text generation, statistics and modelling tasks.

The Icegrams trigram corpus is built from the Icelandic Gigaword Corpus (Risamálheild), which is collected and maintained by The Árni Magnússon Institute for Icelandic Studies, supplemented by a corpus of recent news articles collected by Miðeind. A weighted sample of the corpora, containing about 1 billion tokens of text from 1980 through July 2026, was used as the source of the token stream. Every sentence was corrected with Málfríður, Miðeind's neural spelling and grammar correction model. Trigrams that only occurred once in the stream were eliminated before creating the compressed Icegrams database. The creation process is further described here; the previous (2019) model is described here. The 2019 model itself also remains available: it is bundled inside icegrams releases up to and including 1.1.7 on PyPI, and can be retrieved from this repository's git history, where it was tracked via Git LFS as src/icegrams/resources/trigrams.bin until version 2.0.0.

Example

>>> from icegrams import Ngrams
>>> ng = Ngrams()
>>> # Obtain the frequency of the unigram 'Ísland'
>>> ng.freq("Ísland")
708104
>>> # Obtain the probability of the unigram 'Ísland', as a fraction
>>> # of the frequency of all unigrams in the database
>>> ng.prob("Ísland")
0.00023349672913028182
>>> # Obtain the log probability (base e) of the unigram 'Ísland'
>>> ng.logprob("Ísland")
-8.362342488960794
>>> # Obtain the frequency of the bigram 'Katrín Jakobsdóttir'
>>> ng.freq("Katrín", "Jakobsdóttir")
47918
>>> # Obtain the probability of 'Jakobsdóttir' given 'Katrín'
>>> ng.prob("Katrín", "Jakobsdóttir")
0.1746471994635099
>>> # Obtain the probability of 'Júlíusdóttir' given 'Katrín'
>>> ng.prob("Katrín", "Júlíusdóttir")
0.027305595241566307
>>> # Obtain the frequency of 'velta fyrirtækisins er'
>>> ng.freq("velta", "fyrirtækisins", "er")
15
>>> # adj_freq returns adjusted frequencies, i.e incremented by 1
>>> ng.adj_freq("xxx", "yyy", "zzz")
1
>>> # Obtain the N most likely successors of a given unigram or bigram,
>>> # in descending order by log probability of each successor
>>> ng.succ(10, "stjórnarskrá", "lýðveldisins")
[('Íslands', -1.4328143767547825), ('.', -2.4118815147731096),
    (',', -2.960989325110117), ('og', -3.4164648537929434), ('að', -4.693559922947841),
    ('sem', -4.728651242759112), ('er', -5.016333315210893), ('í', -5.49590639547278),
    ('en', -5.575949103146316), ('?', -5.575949103146316)]
>>> ng.succ(1, "Ég", "hlýði")
[('Víði', -0.9694005571881035)]

Reference

Initializing Icegrams

After installing the icegrams package, use the following code to import it and initialize an instance of the Ngrams class:

from icegrams import Ngrams
ng = Ngrams()

Now you can use the ng instance to query for unigram, bigram and trigram frequencies and probabilities.

An Ngrams instance can be shared by any number of threads, also on free-threaded Python (3.14t and 3.15t), where queries run in parallel. Call ng.close() only when no other thread is using ng.

On Python with the GIL, threads take turns at queries, and several busy threads are slower than one: there, run parallel queries in separate processes, each with its own Ngrams. The processes share the memory-mapped model file.

By default, probabilities of bigrams and trigrams that do not occur in the database are estimated by backing off to the next lower order (see prob() below). To obtain the behavior of versions before 2.1.0, where no backoff was done, pass backoff=False:

ng = Ngrams(backoff=False)

The trigram model is installed with the icegrams-data package, a dependency of icegrams; see the Installation section. If the model is not present, the Ngrams() constructor raises icegrams.ModelNotFoundError.

The Ngrams class

  • __init__(self)

    Initializes the Ngrams instance.

  • freq(self, *args) -> int

    Returns the frequency of a unigram, bigram or trigram.

    • str[] *args A parameter sequence of consecutive unigrams to query the frequency for.
    • returns An integer with the frequency of the unigram, bigram or trigram.

    To query for the frequency of a unigram in the text, call ng.freq("unigram1"). This returns the number of times that the unigram appears in the database. The unigram is queried as-is, i.e. with no string stripping or lowercasing.

    To query for the frequency of a bigram in the text, call ng.freq("unigram1", "unigram2").

    To query for the frequency of a trigram in the text, call ng.freq("unigram1", "unigram2", "unigram3").

    If you pass more than 3 arguments to ng.freq(), only the last 3 are significant, and the query will be treated as a trigram query.

    Examples:

    >>>> ng.freq("stjórnarskrá")
    107427
    >>>> ng.freq("stjórnarskrá", "lýðveldisins")
    3167
    >>>> ng.freq("stjórnarskrá", "lýðveldisins", "Íslands")
    755
    >>>> ng.freq("xxx", "yyy", "zzz")
    0
    
  • adj_freq(self, *args) -> int

    Returns the adjusted frequency of a unigram, bigram or trigram.

    • str[] *args A parameter sequence of consecutive unigrams to query the frequency for.
    • returns An integer with the adjusted frequency of the unigram, bigram or trigram. The adjusted frequency is the actual frequency plus 1. The method thus never returns 0.

    To query for the frequency of a unigram in the text, call ng.adj_freq("unigram1"). This returns the number of times that the unigram appears in the database, plus 1. The unigram is queried as-is, i.e. with no string stripping or lowercasing.

    To query for the frequency of a bigram in the text, call ng.adj_freq("unigram1", "unigram2").

    To query for the frequency of a trigram in the text, call ng.adj_freq("unigram1", "unigram2", "unigram3").

    If you pass more than 3 arguments to ng.adj_freq(), only the last 3 are significant, and the query will be treated as a trigram query.

    Examples:

    >>>> ng.adj_freq("stjórnarskrá")
    107428
    >>>> ng.adj_freq("stjórnarskrá", "lýðveldisins")
    3168
    >>>> ng.adj_freq("stjórnarskrá", "lýðveldisins", "Íslands")
    756
    >>>> ng.adj_freq("xxx", "yyy", "zzz")
    1
    
  • prob(self, *args) -> float

    Returns the probability of a unigram, bigram or trigram.

    • str[] *args A parameter sequence of consecutive unigrams to query the probability for.
    • returns A float with the probability of the given unigram, bigram or trigram.

    The probability of a unigram is the frequency of the unigram divided by the sum of the frequencies of all unigrams in the database.

    The probability of a bigram (u1, u2) is the frequency of the bigram divided by the frequency of the unigram u1, i.e. how likely u2 is to succeed u1.

    The probability of a trigram (u1, u2, u3) is the frequency of the trigram divided by the frequency of the bigram (u1, u2), i.e. how likely u3 is to succeed u1 u2.

    If a bigram or trigram does not occur in the database, its probability is estimated by backoff: the probability of the next lower order n-gram, i.e. (u2, u3) for a trigram or (u3) for a bigram, multiplied by icegrams.BACKOFF_FACTOR (0.4, a read-only constant). The backoff is applied repeatedly if needed, so an unseen trigram whose bigram (u2, u3) is also unseen is estimated from the unigram probability of u3 multiplied by the factor squared. This is the "stupid backoff" scheme of Brants et al. (2007), with one addition: the backed-off estimate is capped at 1 / (context frequency + 1), i.e. what a single unseen continuation of the context would be worth. An unseen n-gram therefore never scores higher than a seen n-gram in the same context, while unseen continuations are still ranked against each other by their lower-order probabilities. The resulting values are not normalized to sum to exactly 1 over the vocabulary, but are suitable for ranking and scoring.

    If the Ngrams instance was created with backoff=False, no backoff is done and the add-one estimates described below under logprob() are returned instead. Note that in that case an n-gram whose context (u1 or (u1, u2)) is itself unseen gets a probability of 1.0.

    If you pass more than 3 arguments to ng.prob(), only the last 3 are significant, and the query will be treated as a trigram probability query.

    Examples:

    >>>> ng.prob("stjórnarskrá")
    3.542424727548586e-05
    >>>> ng.prob("stjórnarskrá", "lýðveldisins")
    0.02948951856126892
    >>>> ng.prob("stjórnarskrá", "lýðveldisins", "Íslands")
    0.23863636363636387
    >>>> # Unseen trigram, backed off to 0.4 * prob("át", "Ísland")
    >>>> ng.prob("hundurinn", "át", "Ísland")
    3.735947666084515e-05
    
  • logprob(self, *args) -> float

    Returns the log probability of a unigram, bigram or trigram.

    • str[] *args A parameter sequence of consecutive unigrams to query the log probability for.
    • returns A float with the natural logarithm (base e) of the probability of the given unigram, bigram or trigram.

    The probability of a unigram is the adjusted frequency of the unigram divided by the sum of the frequencies of all unigrams in the database.

    The probability of a bigram (u1, u2) is the adjusted frequency of the bigram divided by the adjusted frequency of the unigram u1, i.e. how likely u2 is to succeed u1.

    The probability of a trigram (u1, u2, u3) is the adjusted frequency of the trigram divided by the adjusted frequency of the bigram (u1, u2), i.e. how likely u3 is to succeed u1 u2.

    Unseen bigrams and trigrams are backed off to the next lower order as described under prob() above, unless the Ngrams instance was created with backoff=False.

    If you pass more than 3 arguments to ng.logprob(), only the last 3 are significant, and the query will be treated as a trigram probability query.

    Examples:

    >>>> ng.logprob("stjórnarskrá")
    -10.248114021011704
    >>>> ng.logprob("stjórnarskrá", "lýðveldisins")
    -3.523720381779265
    >>>> ng.logprob("stjórnarskrá", "lýðveldisins", "Íslands")
    -1.4328143767547825
    
  • succ(self, n, *args) -> list[tuple]

    Returns the N most probable successors of a unigram or bigram.

    • int n A positive integer specifying how many successors, at a maximum, should be returned.
    • str[] *args One or two string parameters containing the unigram or bigram to query the successors for.
    • returns A list of tuples of (successor unigram, log probability), in descending order of probability.

    If you pass more than 2 string arguments to ng.succ(), only the last 2 are significant, and the query will be treated as a bigram successor query.

    Examples:

    >>>> ng.succ(2, "stjórnarskrá")
    [('.', -1.8955821526777576), ('og', -2.45003747615368)]
    >>>> ng.succ(2, "stjórnarskrá", "lýðveldisins")
    [('Íslands', -1.4328143767547825), ('.', -2.4118815147731096)]
    >>>> # The following is equivalent to ng.succ(2, "lýðveldisins", "Íslands")
    >>>> ng.succ(2, "stjórnarskrá", "lýðveldisins", "Íslands")
    [(',', -1.799606749884445), ('nr.', -1.8759797286690185)]
    

Notes

Icegrams is built with a sliding window over the source text. This means that a sentence such as "Maðurinn borðaði ísinn." results in the following trigrams being added to the database:

   ("", "", "Maðurinn")
   ("", "Maðurinn", "borðaði")
   ("Maðurinn", "borðaði", "ísinn")
   ("borðaði", "ísinn", ".")
   ("ísinn", ".", "")
   (".", "", "")

Trigrams that occur only once in the source text are left out of the database (a frequency cutoff), which keeps it at a manageable size.

Bigram and unigram counts are derived from the stored trigrams: each stored trigram adds its count to both of its bigrams and to all three of its unigrams. In the example above, ("Maðurinn", "borðaði") is counted both as the start of ("Maðurinn", "borðaði", "ísinn") and as the end of ("", "Maðurinn", "borðaði"). This is necessary because the cutoff may remove every trigram that starts with a given bigram, while trigrams that end with it are kept. It means that:

  • A trigram's count is its number of occurrences in the source text.
  • A bigram's count is about twice its number of occurrences, and a unigram's count about three times. For example, ng.freq("í", "dag") returns about 2 million for a bigram that occurs about 1 million times.
  • Bigrams that start a sentence, such as ("", "Maðurinn"), are the exception: their count is the number of sentences that start with the word, as is the count used by succ(N, "").

Comparisons between counts of the same order, and the ranking of successors by succ(), are therefore hardly affected. Probabilities from prob() and logprob() are relative frequencies of these counts, so a trigram probability is about half of the corresponding relative frequency in the text, and a bigram probability about two thirds of it, except directly after the start of a sentence.

The tokenization of the source text into unigrams is done with the Tokenizer package and uses the rules documented there. Importantly, tokens other than words, abbreviations, entity names, person names and punctuation are replaced by placeholders. This means that all numbers are represented by the token [NUMBER], amounts by [AMOUNT], dates by [DATEABS] and [DATEREL], e-mail addresses by [EMAIL], etc. For the complete mapping of token types to placeholder strings, see the documentation for the Tokenizer package.

Prerequisites

This package runs on CPython 3.10 or newer, free-threaded CPython 3.14t and 3.15t, and PyPy 3.11 and 3.12. Binary wheels are published for Linux (x86-64 and aarch64, gcc), macOS (x86-64 and arm64, clang) and Windows (x86-64, MSVC).

If a binary wheel package isn't available on PyPI for your system, you may need to have the python3-dev package (or its Windows equivalent) installed on your system to set up Icegrams successfully. This is because a source distribution install requires a C++ compiler and linker:

# Debian or Ubuntu:
sudo apt-get install python3-dev

Installation

To install this package:

pip install icegrams

This also installs the trigram model, which is published on PyPI as a package of its own, icegrams-data (a 192 MB wheel, holding the 225 MB model file trigrams.bin). icegrams requires the icegrams-data release of the model it was tested with, e.g. icegrams-data == 2026.11.* for the model release of November 2026, so lock files, wheelhouses and container images capture the model together with the code. pip and uv cache the wheel, so it is downloaded once per machine. Creating an Ngrams instance never accesses the network.

The model is also published as an asset of a GitHub release of this repository. Where icegrams-data can't be installed (for instance with pip install --no-deps, or on a machine that cannot reach PyPI), the model can be downloaded from there once instead:

python -m icegrams.download

This stores the model in a per-user cache directory (on Linux typically ~/.cache/icegrams/), verifies its checksum, and is a no-op if the model is already there, or if the installed icegrams-data package holds it. The same step is available from Python as icegrams.download.download_model(). This was the way to install the model for versions 2.0 and 2.1.

The model is looked up in this order: the file named by ICEGRAMS_MODEL_FILE, a model built in place in the package's resources directory, the icegrams-data package, and the download cache. If none holds the model, Ngrams() raises icegrams.ModelNotFoundError. These environment variables affect where the model is stored and looked up:

  • ICEGRAMS_MODEL_FILE: path of an existing model file to use directly, skipping the lookup entirely (useful for offline or air-gapped environments).
  • ICEGRAMS_MODEL_DIR: base directory for the downloaded model, instead of the per-user cache directory. The model is stored in a subdirectory named after the model release (e.g. model-2026.11), so a package upgrade that ships a new model requires running the download step again.
  • ICEGRAMS_MODEL_URL: alternative URL for the download step to fetch the model from. The pinned checksum is only verified for the official URL.

Run python -m icegrams.download --help for the corresponding command-line options (--dir, --url and --force).

If you want to be able to edit the source, do like so (assuming you have git installed):

git clone https://github.com/mideind/Icegrams
cd Icegrams
uv sync --extra dev
uv run python -m icegrams.download   # the model, once

The package source code is now in ./src/icegrams. In this environment, uv installs icegrams-data from the subproject in ./icegrams-data, which holds no model, so the model comes from the download step. (pip install -e ".[dev]" installs icegrams-data from PyPI instead, with the model.)

Tests

To run the built-in tests, install pytest, cd to your Icegrams subdirectory (and optionally activate your virtualenv), then run:

python -m pytest

Changelog

  • Version 2.3.0: The whole model is now memory-mapped and shared between processes. Model file format 2 stores the vocabulary uncompressed, where format 1 made every process unpack it into 22 MB of private memory. Loading the model takes a tenth of the time, and looking up the words of succ() results is about ten times faster. The model is unchanged (the same words and counts), published as icegrams-data 2026.11.0 and as the GitHub release model-2026.11. Model files in format 1 can still be loaded, and tools/upgrade_model.py converts them. The Notes section now describes how bigram and unigram counts are derived. (2026-11-05)
  • Version 2.2.0: The trigram model is installed from PyPI as the package icegrams-data (version 2026.8.0, the unchanged model of 2.0.0), which icegrams now depends on, so the separate download step python -m icegrams.download is no longer needed. It remains as a fallback for installations without icegrams-data. (2026-11-04)
  • Version 2.1.0: prob() and logprob() now back off to the next lower n-gram order for bigrams and trigrams that do not occur in the database ("stupid backoff", factor BACKOFF_FACTOR = 0.4, capped so that an unseen n-gram never outscores a seen one in the same context). Previously an n-gram whose context was itself unseen was given a probability of 1.0. Probabilities of n-grams that do occur are unchanged. The previous behavior is available via Ngrams(backoff=False). Runs on free-threaded CPython (3.14t and 3.15t) without the GIL, and an Ngrams instance can be shared by threads. Support for Python 3.15. Wheels added for free-threaded CPython, PyPy 3.12 and Linux aarch64. Now requires Python 3.10+ and cffi 2.0+. succ() is about four times as fast, and no longer allocates memory in proportion to the number of successors, which is in the hundreds of thousands for common words. (2026-10-16)
  • Version 2.0.0: New trigram model built from a ~1 billion word corpus (IGC-2022 and IGC-2024ext plus recent news through July 2026), corrected with Miðeind's Málfríður neural spelling and grammar correction model. The model file is no longer bundled in the package; it is fetched from a GitHub release in a separate one-time step, python -m icegrams.download, and Ngrams() raises ModelNotFoundError if it isn't present. (2026-09-03)
  • Version 1.1.7: Published abi3 wheels; fixed C++ linking in source builds. (2026-06-11)
  • Version 1.1.6: Added abi3 wheel support for smaller release size. (2025-12-12)
  • Version 1.1.5: Fixed PEP 561 compliance (py.typed). Fixed ruff linting in CI. (2025-12-12)
  • Version 1.1.4: Added support for Python 3.14 and Windows. Improved CI with PyPI trusted publishing. (2025-12-12)
  • Version 1.1.3: Minor tweaks. Support for Python 3.13. Now requires Python 3.9+. (2024-08-27)
  • Version 1.1.2: Minor bug fixes. Cross-platform wheels provided. Now requires Python 3.7+. (2022-12-14)
  • Version 1.1.0: Python 3.5 support dropped; macOS builds fixed; PyPy wheels generated
  • Version 1.0.0: New trigram database sourced from the Icelandic Gigaword Corpus (Risamálheild) with improved tokenization. Replaced GNU GPLv3 with MIT license.
  • Version 0.6.0: Python type annotations added
  • Version 0.5.0: Trigrams corpus has been spell-checked

Icegrams is Copyright © 2020-2026 Miðeind ehf.. The original author of this software is Vilhjálmur Þorsteinsson.

This software is licensed under the MIT License:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Metadata

Release files for icegrams 2.3.0

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

Source distribution (sdist)

Source distribution for icegrams 2.3.0
File Size Uploaded Provenance Actions
icegrams-2.3.0.tar.gz 58.9 kB With provenance Details for icegrams-2.3.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for icegrams 2.3.0
File Actions
icegrams-2.3.0-pp312-pypy312_pp80-win_amd64.whl PyPy 3.12 PyPy 3.12 8.0 Windows x86-64 Details for icegrams-2.3.0-pp312-pypy312_pp80-win_amd64.whl
icegrams-2.3.0-pp312-pypy312_pp80-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl PyPy 3.12 PyPy 3.12 8.0 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for icegrams-2.3.0-pp312-pypy312_pp80-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
icegrams-2.3.0-pp312-pypy312_pp80-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl PyPy 3.12 PyPy 3.12 8.0 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details for icegrams-2.3.0-pp312-pypy312_pp80-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
icegrams-2.3.0-pp312-pypy312_pp80-macosx_11_0_arm64.whl PyPy 3.12 PyPy 3.12 8.0 macOS 11.0+ ARM64 Details for icegrams-2.3.0-pp312-pypy312_pp80-macosx_11_0_arm64.whl
icegrams-2.3.0-pp312-pypy312_pp80-macosx_10_15_x86_64.whl PyPy 3.12 PyPy 3.12 8.0 macOS 10.15+ x86-64 Details for icegrams-2.3.0-pp312-pypy312_pp80-macosx_10_15_x86_64.whl
icegrams-2.3.0-pp311-pypy311_pp80-win_amd64.whl PyPy 3.11 PyPy 3.11 8.0 Windows x86-64 Details for icegrams-2.3.0-pp311-pypy311_pp80-win_amd64.whl
icegrams-2.3.0-pp311-pypy311_pp80-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl PyPy 3.11 PyPy 3.11 8.0 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for icegrams-2.3.0-pp311-pypy311_pp80-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
icegrams-2.3.0-pp311-pypy311_pp80-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl PyPy 3.11 PyPy 3.11 8.0 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details for icegrams-2.3.0-pp311-pypy311_pp80-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
icegrams-2.3.0-pp311-pypy311_pp80-macosx_11_0_arm64.whl PyPy 3.11 PyPy 3.11 8.0 macOS 11.0+ ARM64 Details for icegrams-2.3.0-pp311-pypy311_pp80-macosx_11_0_arm64.whl
icegrams-2.3.0-pp311-pypy311_pp80-macosx_10_15_x86_64.whl PyPy 3.11 PyPy 3.11 8.0 macOS 10.15+ x86-64 Details for icegrams-2.3.0-pp311-pypy311_pp80-macosx_10_15_x86_64.whl
icegrams-2.3.0-pp311-pypy311_pp73-win_amd64.whl PyPy 3.11 PyPy 3.11 7.3 Windows x86-64 Details for icegrams-2.3.0-pp311-pypy311_pp73-win_amd64.whl
icegrams-2.3.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for icegrams-2.3.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
icegrams-2.3.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details for icegrams-2.3.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
icegrams-2.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl PyPy 3.11 PyPy 3.11 7.3 macOS 11.0+ ARM64 Details for icegrams-2.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl
icegrams-2.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 macOS 10.15+ x86-64 Details for icegrams-2.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl
icegrams-2.3.0-cp315-cp315t-win_amd64.whl CPython 3.15 CPython 3.15 free-threading Windows x86-64 Details for icegrams-2.3.0-cp315-cp315t-win_amd64.whl
icegrams-2.3.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for icegrams-2.3.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
icegrams-2.3.0-cp315-cp315t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details for icegrams-2.3.0-cp315-cp315t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
icegrams-2.3.0-cp315-cp315t-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64 Details for icegrams-2.3.0-cp315-cp315t-macosx_11_0_arm64.whl
icegrams-2.3.0-cp315-cp315t-macosx_10_15_x86_64.whl CPython 3.15 CPython 3.15 free-threading macOS 10.15+ x86-64 Details for icegrams-2.3.0-cp315-cp315t-macosx_10_15_x86_64.whl
icegrams-2.3.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details for icegrams-2.3.0-cp314-cp314t-win_amd64.whl
icegrams-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for icegrams-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
icegrams-2.3.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64, Linux glibc 2.5+ x86-64 Details for icegrams-2.3.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
icegrams-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details for icegrams-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl
icegrams-2.3.0-cp314-cp314t-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64 Details for icegrams-2.3.0-cp314-cp314t-macosx_10_15_x86_64.whl
icegrams-2.3.0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for icegrams-2.3.0-cp310-abi3-win_amd64.whl
icegrams-2.3.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for icegrams-2.3.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
icegrams-2.3.0-cp310-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.10 abi3 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details for icegrams-2.3.0-cp310-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
icegrams-2.3.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details for icegrams-2.3.0-cp310-abi3-macosx_11_0_arm64.whl
icegrams-2.3.0-cp310-abi3-macosx_10_9_x86_64.whl CPython 3.10 abi3 macOS 10.9+ x86-64 Details for icegrams-2.3.0-cp310-abi3-macosx_10_9_x86_64.whl

Total release size: 2.4 MB

Release files / icegrams-2.3.0.tar.gz

Download URL icegrams-2.3.0.tar.gz
Size 58.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c511576379fcca4017485f2a09afc46799448e569c632a2949b90a4f7c60b3cc
BLAKE2b-256 checksum
How to use checksums
85337cf3334dd241640b6cc1c46c7d9512e7b6b683256861636ed770c8f422f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-pp312-pypy312_pp80-win_amd64.whl

Download URL icegrams-2.3.0-pp312-pypy312_pp80-win_amd64.whl
Size 124.5 kB
Tags PyPy 3.12 PyPy 3.12 8.0 Windows x86-64
SHA-256 checksum
How to use checksums
5aade64194755583648e3d3b399c022fda10a1d7a6b80cea9c3890fd35ee7346
BLAKE2b-256 checksum
How to use checksums
fa1aa66641cc55c1114635d151ead7d53135db28089048159d0c30d991c65f76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-pp312-pypy312_pp80-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL icegrams-2.3.0-pp312-pypy312_pp80-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 65.2 kB
Tags Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 PyPy 3.12 PyPy 3.12 8.0
SHA-256 checksum
How to use checksums
5c2d249fafa3341d1aa613d37208f40916fc8ca99c28c662c206470fd25a1db0
BLAKE2b-256 checksum
How to use checksums
fa8a6a549b77a55522833214d4903c683382da826827ee79dfd65d60da0da0f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-pp312-pypy312_pp80-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL icegrams-2.3.0-pp312-pypy312_pp80-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 64.1 kB
Tags Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64 PyPy 3.12 PyPy 3.12 8.0
SHA-256 checksum
How to use checksums
f787c5af67c59ffd98a8c32adbe3392b8abbf95748f4ef4c4a24a1002ee06d63
BLAKE2b-256 checksum
How to use checksums
939aea2f187128b730ce25f5daa68f9b8e1f226077b9f9a87521f81b8646035f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-pp312-pypy312_pp80-macosx_11_0_arm64.whl

Download URL icegrams-2.3.0-pp312-pypy312_pp80-macosx_11_0_arm64.whl
Size 64.7 kB
Tags PyPy 3.12 PyPy 3.12 8.0 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e691c07b8527cdb4f766ff05781ad740f061ded104b76db5b97ca10780982955
BLAKE2b-256 checksum
How to use checksums
8fd092d0a004b9b3e49f1bef8c2146ab5298a634fd663b1627637343f9558539
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-pp312-pypy312_pp80-macosx_10_15_x86_64.whl

Download URL icegrams-2.3.0-pp312-pypy312_pp80-macosx_10_15_x86_64.whl
Size 62.0 kB
Tags PyPy 3.12 PyPy 3.12 8.0 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
919d2354584f374578439302e8d9e4e7a300029c6d8a640194779993da25472a
BLAKE2b-256 checksum
How to use checksums
f536125b88ad04c3335668eb5a3213dbf21ad925131a0ff013570bd634379a1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-pp311-pypy311_pp80-win_amd64.whl

Download URL icegrams-2.3.0-pp311-pypy311_pp80-win_amd64.whl
Size 124.5 kB
Tags PyPy 3.11 PyPy 3.11 8.0 Windows x86-64
SHA-256 checksum
How to use checksums
7d64ccf496404f93b56538c8f8f48b20c1315aa1479aa2372f9c964b6d7bde0b
BLAKE2b-256 checksum
How to use checksums
490bb90a7d9740c9b466481e7b1a32b7ff956a9cfccdec2728c799566116f795
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-pp311-pypy311_pp80-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL icegrams-2.3.0-pp311-pypy311_pp80-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 65.2 kB
Tags Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 PyPy 3.11 PyPy 3.11 8.0
SHA-256 checksum
How to use checksums
bd2288fac668b8847db96b46d8fb7284d9e07d2b7fa2e08fce1a338d8a48d88f
BLAKE2b-256 checksum
How to use checksums
f41d6d7ff799db4bff3b11a5480b9d81da896557cff40111a1cb154d2223ea2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-pp311-pypy311_pp80-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL icegrams-2.3.0-pp311-pypy311_pp80-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 64.1 kB
Tags Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64 PyPy 3.11 PyPy 3.11 8.0
SHA-256 checksum
How to use checksums
bf3e14997bb5f24a6ef66f4991ef6bac1947f5ba1283707743f968bac470587f
BLAKE2b-256 checksum
How to use checksums
452079a1b438e513c2978577fb9949b4653b0e5890fa1f915d2ce1675079d867
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-pp311-pypy311_pp80-macosx_11_0_arm64.whl

Download URL icegrams-2.3.0-pp311-pypy311_pp80-macosx_11_0_arm64.whl
Size 64.7 kB
Tags PyPy 3.11 PyPy 3.11 8.0 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b397cc9868393e5b9abaffec85186f48de1caf0f36428b1e23534f0cf34117e6
BLAKE2b-256 checksum
How to use checksums
4bf038c92b96c1cdfe83833af937e74b591036e30cdd959336c9b9e1df6bc150
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-pp311-pypy311_pp80-macosx_10_15_x86_64.whl

Download URL icegrams-2.3.0-pp311-pypy311_pp80-macosx_10_15_x86_64.whl
Size 62.0 kB
Tags PyPy 3.11 PyPy 3.11 8.0 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
6fa051b489fa7d26a2c4e2d78148b6f17fd6c281426efdb2a35b5b815bc2522c
BLAKE2b-256 checksum
How to use checksums
4f0c38ea6aa07326438d24ac53129a587d3420419c68b297e1758e0d5d4e887c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-pp311-pypy311_pp73-win_amd64.whl

Download URL icegrams-2.3.0-pp311-pypy311_pp73-win_amd64.whl
Size 72.9 kB
Tags PyPy 3.11 PyPy 3.11 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
a95ac009e99afbd394a9db85f17a168c15bec9a28f5538a5e36392832548686a
BLAKE2b-256 checksum
How to use checksums
36a7919251f07fdda522746619b76239b78fa6a7a47fb1a1257b8e8b5e83c0de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL icegrams-2.3.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 65.2 kB
Tags Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
a318726856abd4dc32e36d79b254613c125b58c79712227849f5a75aed26b30c
BLAKE2b-256 checksum
How to use checksums
a23bc582f6d6ca78f7bff21357758548e0b244f36f1a93ac477199b41c9d6d63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL icegrams-2.3.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 64.1 kB
Tags Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
0fb68d5e79eae839466bba4de8c37e6e55cdcc15fbde5549dc70044edb75d4cb
BLAKE2b-256 checksum
How to use checksums
e64a9693f1fa5002960438df5f5427f28d76e38a0fef6e88ba11a0cd4213f653
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl

Download URL icegrams-2.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl
Size 72.4 kB
Tags PyPy 3.11 PyPy 3.11 7.3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6cd8902e5939c62d4933b793a054355e4468830a2e98626d3964e79b4fa7a14e
BLAKE2b-256 checksum
How to use checksums
23b4a585a488bb99d8ced85d66a75fa3b000c2dc62b99c441edd7d74af143bed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl

Download URL icegrams-2.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl
Size 67.0 kB
Tags PyPy 3.11 PyPy 3.11 7.3 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
50a58bcabb6f57230d63d9d1b8496155e32b1f67e85c33f1db745dedace77c77
BLAKE2b-256 checksum
How to use checksums
9ecdf74994b682e07efb53b118308a54e67ad8896f6f93cf01bc9e498bc79822
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-cp315-cp315t-win_amd64.whl

Download URL icegrams-2.3.0-cp315-cp315t-win_amd64.whl
Size 69.2 kB
Tags CPython 3.15 CPython 3.15 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
05d747be5f3e29f118ac93d0fd39206f1b49ddbf959df2eb7a12b24110141c78
BLAKE2b-256 checksum
How to use checksums
158b528591ea729afb7f454f7fedf4ddd06639ea85ed34cb7881cc975b2fdf8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL icegrams-2.3.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 101.8 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
da15060e0189d8248f9ed925d3046b55e8de96c14f68e7cb9c68a0ee58394d2e
BLAKE2b-256 checksum
How to use checksums
b30bddcdb7653874fc685d57b3e6af3df4ef340ab61c8bb05b2595b1d744c249
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-cp315-cp315t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL icegrams-2.3.0-cp315-cp315t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 101.4 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
6e1b338df6649bb10855af8f94548b9b44d501e26e69af981bc6ae8391233eba
BLAKE2b-256 checksum
How to use checksums
c39c0538d45ae0d427c2cbf7402ed1c183ab9e86e47d154ec3d1f3ceb0e6b633
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-cp315-cp315t-macosx_11_0_arm64.whl

Download URL icegrams-2.3.0-cp315-cp315t-macosx_11_0_arm64.whl
Size 69.0 kB
Tags CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
946da46c7a6423eb955786ac39f3455e2c9f39c86387c6c0bf32df606aa819ea
BLAKE2b-256 checksum
How to use checksums
1652e6b31b2254bbed1ae57c9ba31d4c103f0991f0bb3e0d4ba87c3b828a5067
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-cp315-cp315t-macosx_10_15_x86_64.whl

Download URL icegrams-2.3.0-cp315-cp315t-macosx_10_15_x86_64.whl
Size 66.7 kB
Tags CPython 3.15 CPython 3.15 free-threading macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
8bb00e3e02553814d2261316b90bfdfed4f1d994011d8904c1358e5fd87bf7a5
BLAKE2b-256 checksum
How to use checksums
e109cd0ed5697060e8add768e60b83c126d9db65187563ce1f58d3e88a661be4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-cp314-cp314t-win_amd64.whl

Download URL icegrams-2.3.0-cp314-cp314t-win_amd64.whl
Size 69.4 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
fb2d1fb11703859b28818900936692e8eb96a3ec30b597c66d6c551cc174c6a3
BLAKE2b-256 checksum
How to use checksums
8e34d03f6a85f53221e58cda6b39bdea3c035ce9c70c2161fd0427034b75b62a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL icegrams-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 111.1 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
1282d42a5148e1a1782c10eec2db812b24b299f4a3c3315685a82761a6f6442d
BLAKE2b-256 checksum
How to use checksums
51eac1c66ba765ec85791127acf6a58872c01327a78750af6235a2008dbf4725
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL icegrams-2.3.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 110.6 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
643b2f49e2853e1757284c306f6e10e889b9b4cdf73c069c5aebb66bfed77324
BLAKE2b-256 checksum
How to use checksums
b61fd44fa27cb38742f5b6d8298a8e943de8826eef0fb3093c87ec5c5ae9c71f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL icegrams-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 69.1 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
34055e984592d706158fbeb67ac8d0606c06c9b53e0f8a2232570ad598e85384
BLAKE2b-256 checksum
How to use checksums
ac1ab630054a344ea077841e4fdf73de5593853181ed5c74524ec9e5b3e262f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-cp314-cp314t-macosx_10_15_x86_64.whl

Download URL icegrams-2.3.0-cp314-cp314t-macosx_10_15_x86_64.whl
Size 66.8 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
3a19561ce73e722588632512553ec0c531e901414f6437472f131ddd2a801e92
BLAKE2b-256 checksum
How to use checksums
2f32dbc383e5f7dd6d96cbcc9a1d73d049b593145b5b13d5d177ee0a03c7fc5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-cp310-abi3-win_amd64.whl

Download URL icegrams-2.3.0-cp310-abi3-win_amd64.whl
Size 68.4 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
b825aacaf074cce9a8125c34b5719f6ab6286971499ecfd38cbc1f98b9f76b1f
BLAKE2b-256 checksum
How to use checksums
0437a5cdb65b498730fe9fb03cfaca11d52cfabb2a8d3ce072e4373f4fb5c510
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL icegrams-2.3.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 104.5 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
d37a57777e2ee3925cf1b863343ab7f9ae97f9559082a22778c3b38a42bd7ff5
BLAKE2b-256 checksum
How to use checksums
7a252f7f542be61dfd981606fea31056270b5dcb9ccb817e9d0ce1acfd70a88c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-cp310-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL icegrams-2.3.0-cp310-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 104.3 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64 abi3
SHA-256 checksum
How to use checksums
5d4549c72e1539623125365780f0dac84b371a1cb2a82ee495e09b41f1d8fc2b
BLAKE2b-256 checksum
How to use checksums
f98b52ee4d9209e602f638c4f8b7b1f16914c9c167f581fda973dc9c8de79da2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL icegrams-2.3.0-cp310-abi3-macosx_11_0_arm64.whl
Size 69.0 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d2ab4c81bf40b55370f39928c78fcd413f676ab03bb5a7a0a10bc467dfaf4566
BLAKE2b-256 checksum
How to use checksums
01aba6f2ceb7357f7b5fa5b1dbeb1510abdc1904f8e4e25362290ac73a4f281b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / icegrams-2.3.0-cp310-abi3-macosx_10_9_x86_64.whl

Download URL icegrams-2.3.0-cp310-abi3-macosx_10_9_x86_64.whl
Size 66.6 kB
Tags CPython 3.10 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
4fb5d0b5e377fc8bf2560f3f60fa148f9c5caba8de71ede7ecc6b0a8f620b55f
BLAKE2b-256 checksum
How to use checksums
7cd299ca3f2985f87a83436350b471268ea9cf6db6a17d538ab93540565474b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Security for icegrams 2.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 31 files in this release have been uploaded with provenance metadata.

Select from 31 files

Attestation for icegrams-2.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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