Skip to main content

frozendict

Table of Contents

Introduction

Welcome, fellow programmer, to the house of frozendict and deepfreeze!

frozendict is a simple immutable dictionary. It's fast as dict, and sometimes faster!

Unlike other similar implementations, immutability is guaranteed: you can't change the internal variables of the class, and they are all immutable objects. Reinvoking __init__ does not alter the object.

The API is the same as dict, without methods that can change the immutability. So it supports also fromkeys, unlike other implementations. Furthermore, it can be pickled, unpickled and have a hash, if all values are hashable.

You can also add any dict to a frozendict using the | operator. The result is a new frozendict.

Install

You can install frozendict by simply typing in a command line:

pip install frozendict

The C Extension is optional by default from version 2.3.5. You can make it mandatory using:

CIBUILDWHEEL=1 pip install frozendict

On the contrary, if you want the pure py implementation:

FROZENDICT_PURE_PY=1 pip install frozendict

API

frozendict API

The API is the same of dict of Python 3.10, without the methods and operands which alter the map. Additionally, frozendict supports these methods:

__hash__()

If all the values of the frozendict are hashable, returns a hash, otherwise raises a TypeError.

set(key, value)

It returns a new frozendict. If key is already in the original frozendict, the new one will have it with the new value associated. Otherwise, the new frozendict will contain the new (key, value) item.

delete(key)

It returns a new frozendict without the item corresponding to the key. If the key is not present, a KeyError is raised.

setdefault(key[, default])

If key is already in frozendict, the object itself is returned unchanged. Otherwise, the new frozendict will contain the new (key, default) item. The parameter default defaults to None.

key([index])

It returns the key at the specified index (determined by the insertion order). If index is not passed, it defaults to 0. If the index is negative, the position will be the size of the frozendict + index

value([index])

Same as key(index), but it returns the value at the given index.

item([index])

Same as key(index), but it returns a tuple with (key, value) at the given index.

deepfreeze API

The frozendict module has also these static methods:

frozendict.deepfreeze(o, custom_converters = None, custom_inverse_converters = None)

Converts the object and all the objects nested in it, into their immutable counterparts.

The conversion map is in getFreezeConversionMap().

You can register a new conversion using register() You can also pass a map of custom converters with custom_converters and a map of custom inverse converters with custom_inverse_converters, without using register().

By default, if the type is not registered and has a __dict__ attribute, it's converted to the frozendict of that __dict__.

This function assumes that hashable == immutable (that is not always true).

This function uses recursion, with all the limits of recursions in Python.

Where is a good old tail call when you need it?

frozendict.register(to_convert, converter, *, inverse = False)

Adds a converter for a type to_convert. converter must be callable. The new converter will be used by deepfreeze() and has precedence over any previous converter.

If to_covert has already a converter, a FreezeWarning is raised.

If inverse is True, the conversion is considered from an immutable type to a mutable one. This make it possible to convert mutable objects nested in the registered immutable one.

frozendict.unregister(type, inverse = False)

Unregister a type from custom conversion. If inverse is True, the unregistered conversion is an inverse conversion (see register()).

Examples

frozendict examples

from frozendict import frozendict

fd = frozendict(Guzzanti = "Corrado", Hicks = "Bill")

print(fd)
# frozendict({'Guzzanti': 'Corrado', 'Hicks': 'Bill'})

frozendict({"Guzzanti": "Corrado", "Hicks": "Bill"})
# frozendict({'Guzzanti': 'Corrado', 'Hicks': 'Bill'})

hash(fd)
# 5833699487320513741

fd_unhashable = frozendict({1: []})
hash(fd_unhashable)
# TypeError: Not all values are hashable.

frozendict({frozendict(nested = 4, key = 2): 42})
# frozendict({frozendict({'nested': 4, 'key': 2}): 42})

fd | {1: 2}
# frozendict({'Guzzanti': 'Corrado', 'Hicks': 'Bill', 1: 2})

fd.set(1, 2)
# frozendict.frozendict({'Guzzanti': 'Corrado', 'Hicks': 'Bill', 1: 2})

fd.set("Guzzanti", "Sabina")
# frozendict.frozendict({'Guzzanti': 'Sabina', 'Hicks': 'Bill'})

fd.delete("Guzzanti")
# frozendict.frozendict({'Hicks': 'Bill'})

fd.setdefault("Guzzanti", "Sabina")
# frozendict.frozendict({'Guzzanti': 'Corrado', 'Hicks': 'Bill'})

fd.setdefault(1, 2)
# frozendict.frozendict({'Guzzanti': 'Corrado', 'Hicks': 'Bill', 1: 2})

fd.key()
# 'Guzzanti'

fd.value(1)
# 'Bill'

fd.item(-1)
# (1, 2)

print(fd["Guzzanti"])
# Corrado

fd["Brignano"]
# KeyError: 'Brignano'

len(fd)
# 2

"Guzzanti" in fd
# True

"Guzzanti" not in fd
# False

"Brignano" in fd
# False

fd5 = frozendict(fd)
id_fd5 = id(fd5)
fd5 |= {1: 2}
fd5
# frozendict.frozendict({'Guzzanti': 'Corrado', 'Hicks': 'Bill', 1: 2})
id(fd5) != id_fd5
# True

fd2 = fd.copy()
fd2 == fd
# True

fd3 = frozendict(fd)
fd3 == fd
# True

fd4 = frozendict({"Hicks": "Bill", "Guzzanti": "Corrado"})

print(fd4)
# frozendict({'Hicks': 'Bill', 'Guzzanti': 'Corrado'})

fd4 == fd
# True

import pickle
fd_unpickled = pickle.loads(pickle.dumps(fd))
print(fd_unpickled)
# frozendict({'Guzzanti': 'Corrado', 'Hicks': 'Bill'})
fd_unpickled == fd
# True

frozendict(Guzzanti="Corrado", Hicks="Bill")
# frozendict({'Guzzanti': 'Corrado', 'Hicks': 'Bill'}

fd.get("Guzzanti")
# 'Corrado'

print(fd.get("Brignano"))
# None

tuple(fd.keys())
# ('Guzzanti', 'Hicks')

tuple(fd.values())
# ('Corrado', 'Bill')

tuple(fd.items())
# (('Guzzanti', 'Corrado'), ('Hicks', 'Bill'))

frozendict.fromkeys(["Corrado", "Sabina"], "Guzzanti")
# frozendict({'Corrado': 'Guzzanti', 'Sabina': 'Guzzanti'})

iter(fd)
# <dict_keyiterator object at 0x7feb75c49188>

fd["Guzzanti"] = "Caterina"
# TypeError: 'frozendict' object doesn't support item assignment

deepfreeze examples

import frozendict as cool

from frozendict import frozendict
from array import array
from collections import OrderedDict
from types import MappingProxyType

class A:
    def __init__(self, x):
        self.x = x

a = A(3)
        
o = {"x": [
    5, 
    frozendict(y = {5, "b", memoryview(b"b")}), 
    array("B", (0, 1, 2)), 
    OrderedDict(a=bytearray(b"a")),
    MappingProxyType({2: []}),
    a
]}

cool.deepfreeze(o)
# frozendict(x = (
#     5, 
#     frozendict(y = frozenset({5, "b", memoryview(b"b")})), 
#     (0, 1, 2), 
#     frozendict(a = b'a'),
#     MappingProxyType({2: ()}),
#     frozendict(x = 3),
# ))

Building

You can build frozendict directly from the code, using

python3 setup.py bdist_wheel

The C Extension is optional by default from version 2.3.5. You can make it mandatory by passing the environment variable CIBUILDWHEEL with value 1

On the contrary, if you want the pure py implementation, you can pass the env var FROZENDICT_PURE_PY with value 1

Benchmarks

Some benchmarks between dict, frozendict and immutables.Map [1].

  • init(d) means construction from a dict.
  • init(kwargs) means construction from keyword arguments (e.g. frozendict(a=1, b=2)).
  • init(o) means constructor applied to the object itself.
  • init(holes) means construction from a dict with holes.
################################################################################
Seed: 0
################################################################################
////////////////////////////////////////////////////////////////////////////////
init(d)     ; Size:    5; Keys: str; Type:       dict; Time: 8.72e-08; CV: 2e-01
init(d)     ; Size:    5; Keys: str; Type: frozendict; Time: 8.23e-08; CV: 2e-01
init(d)     ; Size:    5; Keys: str; Type:        Map; Time: 4.64e-07; CV: 2e-01
////////////////////////////////////////////////////////////////////////////////
init(d)     ; Size:    5; Keys: int; Type:       dict; Time: 9.16e-08; CV: 8e-02
init(d)     ; Size:    5; Keys: int; Type: frozendict; Time: 8.01e-08; CV: 5e-01
init(d)     ; Size:    5; Keys: int; Type:        Map; Time: 4.83e-07; CV: 2e-01
////////////////////////////////////////////////////////////////////////////////
init(d)     ; Size: 5000; Keys: str; Type:       dict; Time: 3.43e-05; CV: 6e-02
init(d)     ; Size: 5000; Keys: str; Type: frozendict; Time: 3.44e-05; CV: 2e-01
init(d)     ; Size: 5000; Keys: str; Type:        Map; Time: 7.82e-04; CV: 7e-02
////////////////////////////////////////////////////////////////////////////////
init(d)     ; Size: 5000; Keys: int; Type:       dict; Time: 1.50e-05; CV: 4e-02
init(d)     ; Size: 5000; Keys: int; Type: frozendict; Time: 1.55e-05; CV: 1e-01
init(d)     ; Size: 5000; Keys: int; Type:        Map; Time: 5.06e-04; CV: 1e-01
################################################################################
////////////////////////////////////////////////////////////////////////////////
init(kwargs); Size:    5; Keys: str; Type:       dict; Time: 1.89e-07; CV: 1e-01
init(kwargs); Size:    5; Keys: str; Type: frozendict; Time: 1.63e-07; CV: 2e-01
init(kwargs); Size:    5; Keys: str; Type:        Map; Time: 6.03e-07; CV: 2e-01
////////////////////////////////////////////////////////////////////////////////
init(kwargs); Size: 5000; Keys: str; Type:       dict; Time: 4.61e-04; CV: 7e-02
init(kwargs); Size: 5000; Keys: str; Type: frozendict; Time: 3.70e-04; CV: 4e-02
init(kwargs); Size: 5000; Keys: str; Type:        Map; Time: 1.04e-03; CV: 1e-01
################################################################################
////////////////////////////////////////////////////////////////////////////////
init(seq2)  ; Size:    5; Keys: str; Type:       dict; Time: 2.45e-07; CV: 1e-01
init(seq2)  ; Size:    5; Keys: str; Type: frozendict; Time: 2.67e-07; CV: 5e-02
init(seq2)  ; Size:    5; Keys: str; Type:        Map; Time: 4.22e-07; CV: 1e-01
////////////////////////////////////////////////////////////////////////////////
init(seq2)  ; Size:    5; Keys: int; Type:       dict; Time: 2.45e-07; CV: 2e-01
init(seq2)  ; Size:    5; Keys: int; Type: frozendict; Time: 2.82e-07; CV: 4e-02
init(seq2)  ; Size:    5; Keys: int; Type:        Map; Time: 4.22e-07; CV: 9e-02
////////////////////////////////////////////////////////////////////////////////
init(seq2)  ; Size: 5000; Keys: str; Type:       dict; Time: 2.25e-04; CV: 4e-01
init(seq2)  ; Size: 5000; Keys: str; Type: frozendict; Time: 2.34e-04; CV: 1e-01
init(seq2)  ; Size: 5000; Keys: str; Type:        Map; Time: 6.93e-04; CV: 1e-01
////////////////////////////////////////////////////////////////////////////////
init(seq2)  ; Size: 5000; Keys: int; Type:       dict; Time: 1.53e-04; CV: 2e-01
init(seq2)  ; Size: 5000; Keys: int; Type: frozendict; Time: 1.81e-04; CV: 7e-01
init(seq2)  ; Size: 5000; Keys: int; Type:        Map; Time: 4.20e-04; CV: 7e-01
################################################################################
////////////////////////////////////////////////////////////////////////////////
init(o)     ; Size:    5; Keys: str; Type:       dict; Time: 9.47e-08; CV: 1e-01
init(o)     ; Size:    5; Keys: str; Type: frozendict; Time: 2.37e-08; CV: 1e-02
init(o)     ; Size:    5; Keys: str; Type:        Map; Time: 7.95e-08; CV: 2e-02
////////////////////////////////////////////////////////////////////////////////
init(o)     ; Size:    5; Keys: int; Type:       dict; Time: 9.29e-08; CV: 1e-01
init(o)     ; Size:    5; Keys: int; Type: frozendict; Time: 2.28e-08; CV: 4e-02
init(o)     ; Size:    5; Keys: int; Type:        Map; Time: 7.84e-08; CV: 5e-01
////////////////////////////////////////////////////////////////////////////////
init(o)     ; Size: 5000; Keys: str; Type:       dict; Time: 3.51e-05; CV: 6e-02
init(o)     ; Size: 5000; Keys: str; Type: frozendict; Time: 2.19e-08; CV: 3e-02
init(o)     ; Size: 5000; Keys: str; Type:        Map; Time: 7.92e-08; CV: 8e-02
////////////////////////////////////////////////////////////////////////////////
init(o)     ; Size: 5000; Keys: int; Type:       dict; Time: 1.69e-05; CV: 5e-02
init(o)     ; Size: 5000; Keys: int; Type: frozendict; Time: 2.37e-08; CV: 8e-02
init(o)     ; Size: 5000; Keys: int; Type:        Map; Time: 7.89e-08; CV: 2e-02
################################################################################
////////////////////////////////////////////////////////////////////////////////
init(holes) ; Size:    4; Keys: str; Type:       dict; Time: 1.97e-07; CV: 9e-02
init(holes) ; Size:    4; Keys: str; Type: frozendict; Time: 1.35e-07; CV: 2e-02
init(holes) ; Size:    4; Keys: str; Type:        Map; Time: 3.91e-07; CV: 3e-01
////////////////////////////////////////////////////////////////////////////////
init(holes) ; Size:    4; Keys: int; Type:       dict; Time: 1.91e-07; CV: 5e-01
init(holes) ; Size:    4; Keys: int; Type: frozendict; Time: 1.31e-07; CV: 9e-02
init(holes) ; Size:    4; Keys: int; Type:        Map; Time: 3.88e-07; CV: 6e-01
////////////////////////////////////////////////////////////////////////////////
init(holes) ; Size: 4999; Keys: str; Type:       dict; Time: 1.46e-04; CV: 3e-01
init(holes) ; Size: 4999; Keys: str; Type: frozendict; Time: 1.10e-04; CV: 2e-01
init(holes) ; Size: 4999; Keys: str; Type:        Map; Time: 7.82e-04; CV: 2e-01
////////////////////////////////////////////////////////////////////////////////
init(holes) ; Size: 4999; Keys: int; Type:       dict; Time: 1.06e-04; CV: 4e-02
init(holes) ; Size: 4999; Keys: int; Type: frozendict; Time: 8.11e-05; CV: 5e-02
init(holes) ; Size: 4999; Keys: int; Type:        Map; Time: 5.06e-04; CV: 3e-01
################################################################################
////////////////////////////////////////////////////////////////////////////////
copy        ; Size:    5; Keys: str; Type:       dict; Time: 6.66e-08; CV: 6e-01
copy        ; Size:    5; Keys: str; Type: frozendict; Time: 2.09e-08; CV: 2e-02
copy        ; Size:    5; Keys: str; Type:        Map; Time: 2.03e-06; CV: 2e-01
////////////////////////////////////////////////////////////////////////////////
copy        ; Size:    5; Keys: int; Type:       dict; Time: 6.63e-08; CV: 8e-01
copy        ; Size:    5; Keys: int; Type: frozendict; Time: 2.50e-08; CV: 1e-02
copy        ; Size:    5; Keys: int; Type:        Map; Time: 2.01e-06; CV: 1e-01
////////////////////////////////////////////////////////////////////////////////
copy        ; Size: 5000; Keys: str; Type:       dict; Time: 3.40e-05; CV: 4e-02
copy        ; Size: 5000; Keys: str; Type: frozendict; Time: 1.92e-08; CV: 4e-02
copy        ; Size: 5000; Keys: str; Type:        Map; Time: 1.01e-03; CV: 4e-02
////////////////////////////////////////////////////////////////////////////////
copy        ; Size: 5000; Keys: int; Type:       dict; Time: 1.50e-05; CV: 8e-02
copy        ; Size: 5000; Keys: int; Type: frozendict; Time: 1.88e-08; CV: 3e+00
copy        ; Size: 5000; Keys: int; Type:        Map; Time: 7.43e-04; CV: 2e-01
################################################################################
////////////////////////////////////////////////////////////////////////////////
iter keys   ; Size:    5; Keys: str; Type:       dict; Time: 7.95e-08; CV: 5e-02
iter keys   ; Size:    5; Keys: str; Type: frozendict; Time: 7.12e-08; CV: 9e-01
iter keys   ; Size:    5; Keys: str; Type:        Map; Time: 1.27e-07; CV: 7e-02
////////////////////////////////////////////////////////////////////////////////
iter keys   ; Size:    5; Keys: int; Type:       dict; Time: 7.07e-08; CV: 5e-01
iter keys   ; Size:    5; Keys: int; Type: frozendict; Time: 7.89e-08; CV: 3e-02
iter keys   ; Size:    5; Keys: int; Type:        Map; Time: 1.17e-07; CV: 5e-02
////////////////////////////////////////////////////////////////////////////////
iter keys   ; Size: 5000; Keys: str; Type:       dict; Time: 5.97e-05; CV: 6e-02
iter keys   ; Size: 5000; Keys: str; Type: frozendict; Time: 4.07e-05; CV: 8e-01
iter keys   ; Size: 5000; Keys: str; Type:        Map; Time: 8.36e-05; CV: 1e+00
////////////////////////////////////////////////////////////////////////////////
iter keys   ; Size: 5000; Keys: int; Type:       dict; Time: 4.63e-05; CV: 1e+01
iter keys   ; Size: 5000; Keys: int; Type: frozendict; Time: 4.60e-05; CV: 2e+00
iter keys   ; Size: 5000; Keys: int; Type:        Map; Time: 6.37e-05; CV: 1e-01
################################################################################
////////////////////////////////////////////////////////////////////////////////
iter values ; Size:    5; Keys: str; Type:       dict; Time: 7.67e-08; CV: 4e-02
iter values ; Size:    5; Keys: str; Type: frozendict; Time: 8.20e-08; CV: 3e-02
iter values ; Size:    5; Keys: str; Type:        Map; Time: 1.27e-07; CV: 3e-02
////////////////////////////////////////////////////////////////////////////////
iter values ; Size:    5; Keys: int; Type:       dict; Time: 8.19e-08; CV: 4e+00
iter values ; Size:    5; Keys: int; Type: frozendict; Time: 7.36e-08; CV: 5e-02
iter values ; Size:    5; Keys: int; Type:        Map; Time: 1.22e-07; CV: 1e-01
////////////////////////////////////////////////////////////////////////////////
iter values ; Size: 5000; Keys: str; Type:       dict; Time: 5.29e-05; CV: 1e-01
iter values ; Size: 5000; Keys: str; Type: frozendict; Time: 4.49e-05; CV: 2e-01
iter values ; Size: 5000; Keys: str; Type:        Map; Time: 9.01e-05; CV: 1e+00
////////////////////////////////////////////////////////////////////////////////
iter values ; Size: 5000; Keys: int; Type:       dict; Time: 4.62e-05; CV: 6e-02
iter values ; Size: 5000; Keys: int; Type: frozendict; Time: 4.17e-05; CV: 2e+00
iter values ; Size: 5000; Keys: int; Type:        Map; Time: 7.02e-05; CV: 1e-01
################################################################################
////////////////////////////////////////////////////////////////////////////////
iter items  ; Size:    5; Keys: str; Type:       dict; Time: 1.37e-07; CV: 1e+00
iter items  ; Size:    5; Keys: str; Type: frozendict; Time: 1.45e-07; CV: 1e+00
iter items  ; Size:    5; Keys: str; Type:        Map; Time: 2.30e-07; CV: 8e-02
////////////////////////////////////////////////////////////////////////////////
iter items  ; Size:    5; Keys: int; Type:       dict; Time: 1.52e-07; CV: 3e-02
iter items  ; Size:    5; Keys: int; Type: frozendict; Time: 1.46e-07; CV: 5e-02
iter items  ; Size:    5; Keys: int; Type:        Map; Time: 2.20e-07; CV: 9e-02
////////////////////////////////////////////////////////////////////////////////
iter items  ; Size: 5000; Keys: str; Type:       dict; Time: 1.13e-04; CV: 4e+00
iter items  ; Size: 5000; Keys: str; Type: frozendict; Time: 1.07e-04; CV: 5e+00
iter items  ; Size: 5000; Keys: str; Type:        Map; Time: 1.87e-04; CV: 5e-01
////////////////////////////////////////////////////////////////////////////////
iter items  ; Size: 5000; Keys: int; Type:       dict; Time: 1.11e-04; CV: 2e-02
iter items  ; Size: 5000; Keys: int; Type: frozendict; Time: 9.76e-05; CV: 2e-02
iter items  ; Size: 5000; Keys: int; Type:        Map; Time: 1.66e-04; CV: 9e-02
################################################################################
////////////////////////////////////////////////////////////////////////////////
pickle.dumps; Size:    5; Keys: str; Type:       dict; Time: 7.35e-07; CV: 2e-01
pickle.dumps; Size:    5; Keys: str; Type: frozendict; Time: 2.22e-06; CV: 6e-02
pickle.dumps; Size:    5; Keys: str; Type:        Map; Time: 2.85e-06; CV: 2e-01
////////////////////////////////////////////////////////////////////////////////
pickle.dumps; Size:    5; Keys: int; Type:       dict; Time: 5.16e-07; CV: 2e-01
pickle.dumps; Size:    5; Keys: int; Type: frozendict; Time: 2.06e-06; CV: 3e-01
pickle.dumps; Size:    5; Keys: int; Type:        Map; Time: 2.70e-06; CV: 2e-01
////////////////////////////////////////////////////////////////////////////////
pickle.dumps; Size: 5000; Keys: str; Type:       dict; Time: 6.37e-04; CV: 9e-02
pickle.dumps; Size: 5000; Keys: str; Type: frozendict; Time: 6.69e-04; CV: 3e-01
pickle.dumps; Size: 5000; Keys: str; Type:        Map; Time: 1.00e-03; CV: 1e-01
////////////////////////////////////////////////////////////////////////////////
pickle.dumps; Size: 5000; Keys: int; Type:       dict; Time: 1.58e-04; CV: 2e-02
pickle.dumps; Size: 5000; Keys: int; Type: frozendict; Time: 1.75e-04; CV: 7e-02
pickle.dumps; Size: 5000; Keys: int; Type:        Map; Time: 3.39e-04; CV: 2e-01
################################################################################
////////////////////////////////////////////////////////////////////////////////
pickle.loads; Size:    5; Keys: str; Type:       dict; Time: 9.56e-07; CV: 2e-01
pickle.loads; Size:    5; Keys: str; Type: frozendict; Time: 2.12e-06; CV: 1e-01
pickle.loads; Size:    5; Keys: str; Type:        Map; Time: 2.73e-06; CV: 9e-01
////////////////////////////////////////////////////////////////////////////////
pickle.loads; Size:    5; Keys: int; Type:       dict; Time: 5.04e-07; CV: 6e-01
pickle.loads; Size:    5; Keys: int; Type: frozendict; Time: 1.66e-06; CV: 8e-01
pickle.loads; Size:    5; Keys: int; Type:        Map; Time: 2.26e-06; CV: 2e-01
////////////////////////////////////////////////////////////////////////////////
pickle.loads; Size: 5000; Keys: str; Type:       dict; Time: 7.89e-04; CV: 1e-01
pickle.loads; Size: 5000; Keys: str; Type: frozendict; Time: 8.30e-04; CV: 1e-01
pickle.loads; Size: 5000; Keys: str; Type:        Map; Time: 1.56e-03; CV: 1e-01
////////////////////////////////////////////////////////////////////////////////
pickle.loads; Size: 5000; Keys: int; Type:       dict; Time: 3.22e-04; CV: 4e-02
pickle.loads; Size: 5000; Keys: int; Type: frozendict; Time: 3.66e-04; CV: 2e-01
pickle.loads; Size: 5000; Keys: int; Type:        Map; Time: 9.39e-04; CV: 6e-01
################################################################################
////////////////////////////////////////////////////////////////////////////////
fromkeys    ; Size:    5; Keys: str; Type:       dict; Time: 2.35e-07; CV: 4e-02
fromkeys    ; Size:    5; Keys: str; Type: frozendict; Time: 2.53e-07; CV: 4e-02
////////////////////////////////////////////////////////////////////////////////
fromkeys    ; Size:    5; Keys: int; Type:       dict; Time: 2.29e-07; CV: 1e+00
fromkeys    ; Size:    5; Keys: int; Type: frozendict; Time: 2.64e-07; CV: 1e-02
////////////////////////////////////////////////////////////////////////////////
fromkeys    ; Size: 5000; Keys: str; Type:       dict; Time: 2.10e-04; CV: 1e-01
fromkeys    ; Size: 5000; Keys: str; Type: frozendict; Time: 2.17e-04; CV: 2e-01
////////////////////////////////////////////////////////////////////////////////
fromkeys    ; Size: 5000; Keys: int; Type:       dict; Time: 1.50e-04; CV: 1e+00
fromkeys    ; Size: 5000; Keys: int; Type: frozendict; Time: 1.76e-04; CV: 3e-01
################################################################################
////////////////////////////////////////////////////////////////////////////////
set         ; Size:    5; Keys: str; Type:       dict; Time: 8.75e-08; CV: 2e+00
set         ; Size:    5; Keys: str; Type: frozendict; Time: 9.38e-08; CV: 4e-01
set         ; Size:    5; Keys: str; Type:        Map; Time: 1.46e-07; CV: 3e-01
////////////////////////////////////////////////////////////////////////////////
set         ; Size:    5; Keys: int; Type:       dict; Time: 8.98e-08; CV: 3e-01
set         ; Size:    5; Keys: int; Type: frozendict; Time: 1.03e-07; CV: 1e-01
set         ; Size:    5; Keys: int; Type:        Map; Time: 1.51e-07; CV: 3e-01
////////////////////////////////////////////////////////////////////////////////
set         ; Size: 5000; Keys: str; Type:       dict; Time: 3.44e-05; CV: 2e-01
set         ; Size: 5000; Keys: str; Type: frozendict; Time: 3.41e-05; CV: 1e-01
set         ; Size: 5000; Keys: str; Type:        Map; Time: 3.37e-07; CV: 3e+00
////////////////////////////////////////////////////////////////////////////////
set         ; Size: 5000; Keys: int; Type:       dict; Time: 1.51e-05; CV: 1e-01
set         ; Size: 5000; Keys: int; Type: frozendict; Time: 1.43e-05; CV: 4e+00
set         ; Size: 5000; Keys: int; Type:        Map; Time: 3.29e-07; CV: 8e-01
################################################################################
////////////////////////////////////////////////////////////////////////////////
delete      ; Size:    5; Keys: str; Type:       dict; Time: 8.78e-08; CV: 5e-01
delete      ; Size:    5; Keys: str; Type: frozendict; Time: 9.52e-08; CV: 3e-01
delete      ; Size:    5; Keys: str; Type:        Map; Time: 1.01e-07; CV: 2e+00
////////////////////////////////////////////////////////////////////////////////
delete      ; Size:    5; Keys: int; Type:       dict; Time: 9.00e-08; CV: 1e-01
delete      ; Size:    5; Keys: int; Type: frozendict; Time: 1.06e-07; CV: 8e-02
delete      ; Size:    5; Keys: int; Type:        Map; Time: 1.05e-07; CV: 6e-02
////////////////////////////////////////////////////////////////////////////////
delete      ; Size: 5000; Keys: str; Type:       dict; Time: 3.42e-05; CV: 2e-02
delete      ; Size: 5000; Keys: str; Type: frozendict; Time: 3.67e-05; CV: 2e+00
delete      ; Size: 5000; Keys: str; Type:        Map; Time: 2.96e-07; CV: 3e+00
////////////////////////////////////////////////////////////////////////////////
delete      ; Size: 5000; Keys: int; Type:       dict; Time: 1.51e-05; CV: 2e-01
delete      ; Size: 5000; Keys: int; Type: frozendict; Time: 2.20e-05; CV: 5e+00
delete      ; Size: 5000; Keys: int; Type:        Map; Time: 2.98e-07; CV: 1e+00
################################################################################

[1] Benchmarks done using the C Extension with:

  • Linux x86_64
  • CPU with 4 cores and 8 threads
  • Python 3.10.21 compiled with GCC 12, without PGO and LTO. An optimized build of Python would be unfair, since the C Extension has no PGO and no LTO.
  • Commands run before the benchmark:
sudo pyperf system tune
sudo cpupower frequency-set -d 3001MHz -u 3001MHz
sudo tuna --cpus=2,3 --isolate
  • Benchmark command:
PYTHONHASHSEED=0 taskset -c 2 python -u test/bench.py --seed 0

CV is the robust coefficient of variation: MAD / median.

Metadata

Release files for frozendict 2.5.1

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

Source distribution (sdist)

Source distribution for frozendict 2.5.1
File Size Uploaded Provenance Actions
frozendict-2.5.1.tar.gz 337.4 kB Without provenance Details for frozendict-2.5.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for frozendict 2.5.1
File Actions
frozendict-2.5.1-py3-none-any.whl Python 3 none any Details for frozendict-2.5.1-py3-none-any.whl
frozendict-2.5.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for frozendict-2.5.1-cp310-cp310-win_amd64.whl
frozendict-2.5.1-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details for frozendict-2.5.1-cp310-cp310-win32.whl
frozendict-2.5.1-cp310-cp310-musllinux_1_2_s390x.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ IBM System/390x Details for frozendict-2.5.1-cp310-cp310-musllinux_1_2_s390x.whl
frozendict-2.5.1-cp310-cp310-musllinux_1_2_riscv64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ RISC-V 64 Details for frozendict-2.5.1-cp310-cp310-musllinux_1_2_riscv64.whl
frozendict-2.5.1-cp310-cp310-musllinux_1_2_ppc64le.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ PowerPC 64-le Details for frozendict-2.5.1-cp310-cp310-musllinux_1_2_ppc64le.whl
frozendict-2.5.1-cp310-cp310-musllinux_1_2_i686.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-32 Details for frozendict-2.5.1-cp310-cp310-musllinux_1_2_i686.whl
frozendict-2.5.1-cp310-cp310-musllinux_1_2_armv7l.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ ARMv7l Details for frozendict-2.5.1-cp310-cp310-musllinux_1_2_armv7l.whl
frozendict-2.5.1-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl CPython 3.10 CPython 3.10 Linux glibc 2.31+ RISC-V 64, Linux glibc 2.39+ RISC-V 64 Details for frozendict-2.5.1-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl
frozendict-2.5.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for frozendict-2.5.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
frozendict-2.5.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ IBM System/390x, Linux glibc 2.28+ IBM System/390x Details for frozendict-2.5.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
frozendict-2.5.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ PowerPC 64-le, Linux glibc 2.17+ PowerPC 64-le Details for frozendict-2.5.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
frozendict-2.5.1-cp310-cp310-macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) Details for frozendict-2.5.1-cp310-cp310-macosx_10_9_universal2.whl
frozendict-2.5.1-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for frozendict-2.5.1-cp39-cp39-win_amd64.whl
frozendict-2.5.1-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details for frozendict-2.5.1-cp39-cp39-win32.whl
frozendict-2.5.1-cp39-cp39-musllinux_1_2_s390x.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ IBM System/390x Details for frozendict-2.5.1-cp39-cp39-musllinux_1_2_s390x.whl
frozendict-2.5.1-cp39-cp39-musllinux_1_2_riscv64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ RISC-V 64 Details for frozendict-2.5.1-cp39-cp39-musllinux_1_2_riscv64.whl
frozendict-2.5.1-cp39-cp39-musllinux_1_2_ppc64le.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ PowerPC 64-le Details for frozendict-2.5.1-cp39-cp39-musllinux_1_2_ppc64le.whl
frozendict-2.5.1-cp39-cp39-musllinux_1_2_i686.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-32 Details for frozendict-2.5.1-cp39-cp39-musllinux_1_2_i686.whl
frozendict-2.5.1-cp39-cp39-musllinux_1_2_armv7l.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ ARMv7l Details for frozendict-2.5.1-cp39-cp39-musllinux_1_2_armv7l.whl
frozendict-2.5.1-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl CPython 3.9 CPython 3.9 Linux glibc 2.31+ RISC-V 64, Linux glibc 2.39+ RISC-V 64 Details for frozendict-2.5.1-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl
frozendict-2.5.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for frozendict-2.5.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
frozendict-2.5.1-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ IBM System/390x, Linux glibc 2.28+ IBM System/390x Details for frozendict-2.5.1-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
frozendict-2.5.1-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ PowerPC 64-le, Linux glibc 2.28+ PowerPC 64-le Details for frozendict-2.5.1-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
frozendict-2.5.1-cp39-cp39-macosx_10_9_universal2.whl CPython 3.9 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) Details for frozendict-2.5.1-cp39-cp39-macosx_10_9_universal2.whl
frozendict-2.5.1-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details for frozendict-2.5.1-cp38-cp38-win_amd64.whl
frozendict-2.5.1-cp38-cp38-win32.whl CPython 3.8 CPython 3.8 Windows x86-32 Details for frozendict-2.5.1-cp38-cp38-win32.whl
frozendict-2.5.1-cp38-cp38-musllinux_1_2_s390x.whl CPython 3.8 CPython 3.8 Linux musl 1.2+ IBM System/390x Details for frozendict-2.5.1-cp38-cp38-musllinux_1_2_s390x.whl
frozendict-2.5.1-cp38-cp38-musllinux_1_2_riscv64.whl CPython 3.8 CPython 3.8 Linux musl 1.2+ RISC-V 64 Details for frozendict-2.5.1-cp38-cp38-musllinux_1_2_riscv64.whl
frozendict-2.5.1-cp38-cp38-musllinux_1_2_ppc64le.whl CPython 3.8 CPython 3.8 Linux musl 1.2+ PowerPC 64-le Details for frozendict-2.5.1-cp38-cp38-musllinux_1_2_ppc64le.whl
frozendict-2.5.1-cp38-cp38-musllinux_1_2_i686.whl CPython 3.8 CPython 3.8 Linux musl 1.2+ x86-32 Details for frozendict-2.5.1-cp38-cp38-musllinux_1_2_i686.whl
frozendict-2.5.1-cp38-cp38-musllinux_1_2_armv7l.whl CPython 3.8 CPython 3.8 Linux musl 1.2+ ARMv7l Details for frozendict-2.5.1-cp38-cp38-musllinux_1_2_armv7l.whl
frozendict-2.5.1-cp38-cp38-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl CPython 3.8 CPython 3.8 Linux glibc 2.31+ RISC-V 64, Linux glibc 2.39+ RISC-V 64 Details for frozendict-2.5.1-cp38-cp38-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl
frozendict-2.5.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for frozendict-2.5.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
frozendict-2.5.1-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ IBM System/390x, Linux glibc 2.28+ IBM System/390x Details for frozendict-2.5.1-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
frozendict-2.5.1-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ PowerPC 64-le, Linux glibc 2.28+ PowerPC 64-le Details for frozendict-2.5.1-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
frozendict-2.5.1-cp38-cp38-macosx_10_9_universal2.whl CPython 3.8 CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64) Details for frozendict-2.5.1-cp38-cp38-macosx_10_9_universal2.whl
frozendict-2.5.1-cp37-cp37m-win32.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-32 Details for frozendict-2.5.1-cp37-cp37m-win32.whl
frozendict-2.5.1-cp37-cp37m-musllinux_1_2_s390x.whl CPython 3.7 CPython 3.7 pymalloc Linux musl 1.2+ IBM System/390x Details for frozendict-2.5.1-cp37-cp37m-musllinux_1_2_s390x.whl
frozendict-2.5.1-cp37-cp37m-musllinux_1_2_ppc64le.whl CPython 3.7 CPython 3.7 pymalloc Linux musl 1.2+ PowerPC 64-le Details for frozendict-2.5.1-cp37-cp37m-musllinux_1_2_ppc64le.whl
frozendict-2.5.1-cp37-cp37m-musllinux_1_2_i686.whl CPython 3.7 CPython 3.7 pymalloc Linux musl 1.2+ x86-32 Details for frozendict-2.5.1-cp37-cp37m-musllinux_1_2_i686.whl
frozendict-2.5.1-cp37-cp37m-musllinux_1_2_armv7l.whl CPython 3.7 CPython 3.7 pymalloc Linux musl 1.2+ ARMv7l Details for frozendict-2.5.1-cp37-cp37m-musllinux_1_2_armv7l.whl
frozendict-2.5.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ IBM System/390x Details for frozendict-2.5.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
frozendict-2.5.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ PowerPC 64-le Details for frozendict-2.5.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
frozendict-2.5.1-cp37-cp37m-macosx_10_9_x86_64.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64 Details for frozendict-2.5.1-cp37-cp37m-macosx_10_9_x86_64.whl
frozendict-2.5.1-cp36-cp36m-win32.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-32 Details for frozendict-2.5.1-cp36-cp36m-win32.whl
frozendict-2.5.1-cp36-cp36m-musllinux_1_2_s390x.whl CPython 3.6 CPython 3.6 pymalloc Linux musl 1.2+ IBM System/390x Details for frozendict-2.5.1-cp36-cp36m-musllinux_1_2_s390x.whl
frozendict-2.5.1-cp36-cp36m-musllinux_1_2_ppc64le.whl CPython 3.6 CPython 3.6 pymalloc Linux musl 1.2+ PowerPC 64-le Details for frozendict-2.5.1-cp36-cp36m-musllinux_1_2_ppc64le.whl
frozendict-2.5.1-cp36-cp36m-musllinux_1_2_i686.whl CPython 3.6 CPython 3.6 pymalloc Linux musl 1.2+ x86-32 Details for frozendict-2.5.1-cp36-cp36m-musllinux_1_2_i686.whl
frozendict-2.5.1-cp36-cp36m-musllinux_1_2_armv7l.whl CPython 3.6 CPython 3.6 pymalloc Linux musl 1.2+ ARMv7l Details for frozendict-2.5.1-cp36-cp36m-musllinux_1_2_armv7l.whl
frozendict-2.5.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ IBM System/390x Details for frozendict-2.5.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl
frozendict-2.5.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ PowerPC 64-le Details for frozendict-2.5.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
frozendict-2.5.1-cp36-cp36m-macosx_10_9_x86_64.whl CPython 3.6 CPython 3.6 pymalloc macOS 10.9+ x86-64 Details for frozendict-2.5.1-cp36-cp36m-macosx_10_9_x86_64.whl

Total release size: 5.3 MB

Release files / frozendict-2.5.1.tar.gz

Download URL frozendict-2.5.1.tar.gz
Size 337.4 kB
Tags Source
SHA-256 checksum
How to use checksums
b79b0c133220c5976ff05b8bfe3c1215119caa6255f477a309151fd5e2c2c0c3
BLAKE2b-256 checksum
How to use checksums
ed457335e29396dde7c9ec00c4758c46bb7d4a9f07ca0a351ae58b814ca6b6a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-py3-none-any.whl

Download URL frozendict-2.5.1-py3-none-any.whl
Size 18.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b6e602e286b912beca1e12615f50eda6c74646b440c8cfde34221adee6c98c5e
BLAKE2b-256 checksum
How to use checksums
60980902e074fb777b4064594a3a18773a50d661dbb8d73b7487fdf63ba088cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp310-cp310-win_amd64.whl

Download URL frozendict-2.5.1-cp310-cp310-win_amd64.whl
Size 39.1 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
2f085ad897a9fdecb3a13eccb8739809204f39b16dc7c63329d492e4fb133661
BLAKE2b-256 checksum
How to use checksums
ee357f9d4cb6b78467116d3710c8cf95fe0804d4682814443913fd5ded093e7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp310-cp310-win32.whl

Download URL frozendict-2.5.1-cp310-cp310-win32.whl
Size 36.0 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
a7596eacbba13713b82c851bcb5c1da7b44f6a166ef1cf887c4d5fd6d6e9c7d6
BLAKE2b-256 checksum
How to use checksums
0c56d945a8e6637db20a2afdf15a3bf5ee8f98a11072a9bd1331bc86baab0605
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp310-cp310-musllinux_1_2_s390x.whl

Download URL frozendict-2.5.1-cp310-cp310-musllinux_1_2_s390x.whl
Size 127.4 kB
Tags CPython 3.10 Linux musl 1.2+ IBM System/390x
SHA-256 checksum
How to use checksums
0e2803b9f41dcd3ee6c1680cc425a0e5115b34d26e21f2b167832eac84f6926f
BLAKE2b-256 checksum
How to use checksums
a70c5cb21207481f4f275d15c262e031b67581b5e880d3d5b4675d7707ee9f8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp310-cp310-musllinux_1_2_riscv64.whl

Download URL frozendict-2.5.1-cp310-cp310-musllinux_1_2_riscv64.whl
Size 117.5 kB
Tags CPython 3.10 Linux musl 1.2+ RISC-V 64
SHA-256 checksum
How to use checksums
22fd0dab2479b5f8bd9e0697351caeb8278b71d790e2aca6ae005c17c7050f41
BLAKE2b-256 checksum
How to use checksums
72c1bdabd6b2816f1c13b2695425c46e5e49d9c6bc050b55184dda0e516dd6d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp310-cp310-musllinux_1_2_ppc64le.whl

Download URL frozendict-2.5.1-cp310-cp310-musllinux_1_2_ppc64le.whl
Size 130.6 kB
Tags CPython 3.10 Linux musl 1.2+ PowerPC 64-le
SHA-256 checksum
How to use checksums
11e8070834a81b14ffaef809f4a061dcd0fbab898f9ea07fb8d972b59648771a
BLAKE2b-256 checksum
How to use checksums
be974e4c7c934a450ce6d691ff623ea49762c352342b06c2d109c9173efce259
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp310-cp310-musllinux_1_2_i686.whl

Download URL frozendict-2.5.1-cp310-cp310-musllinux_1_2_i686.whl
Size 116.7 kB
Tags CPython 3.10 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
4c952945ed419af55f0fb80777fdd67c61f80734891cab28e6164bd7d05a877a
BLAKE2b-256 checksum
How to use checksums
33e0d7aa8e4692067d15dc94b6eb2f4412c51a2ed87fbeaf9b6d2105b7b6dbca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp310-cp310-musllinux_1_2_armv7l.whl

Download URL frozendict-2.5.1-cp310-cp310-musllinux_1_2_armv7l.whl
Size 113.7 kB
Tags CPython 3.10 Linux musl 1.2+ ARMv7l
SHA-256 checksum
How to use checksums
c8da4d485d2c1cf7e79291a4c38f35d69adbca75829b8b2ef4ef9d6216cada0f
BLAKE2b-256 checksum
How to use checksums
fcc933c833dcbfc99c8c00ae14b8a6c0dcb4064f1fb12592121ba4dc926abfe5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl

Download URL frozendict-2.5.1-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl
Size 118.2 kB
Tags CPython 3.10 Linux glibc 2.31+ RISC-V 64 Linux glibc 2.39+ RISC-V 64
SHA-256 checksum
How to use checksums
9c8f1f2a776c16d89b40f7648d01ce06fd398031e98e244851616409ed08b54e
BLAKE2b-256 checksum
How to use checksums
78d410a984986361b9cc964d032c6c0de4f6d246ee1fb5242ca66271378733f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL frozendict-2.5.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 123.4 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bf31d18fbbe835bc043f8a0b984023987cdf6f3f64879e4c73d099ca890d9ff3
BLAKE2b-256 checksum
How to use checksums
ae90820372922efa381c45f7eb695457f831759459ec86430ab69073262b8637
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl

Download URL frozendict-2.5.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Size 132.3 kB
Tags CPython 3.10 Linux glibc 2.17+ IBM System/390x Linux glibc 2.28+ IBM System/390x
SHA-256 checksum
How to use checksums
35a01d3607f8faa2e85daa888941331e044c4b595c5972090669bf2dc42d4199
BLAKE2b-256 checksum
How to use checksums
2e7c6756b50c408eca8bc8efacb405be697ab7a5c87733201e84d42e80a043bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl

Download URL frozendict-2.5.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Size 133.8 kB
Tags CPython 3.10 Linux glibc 2.17+ PowerPC 64-le Linux glibc 2.28+ PowerPC 64-le
SHA-256 checksum
How to use checksums
8cae5bfba358da3991168560e2455f5df3c11667c8e185b026178a0bbd84a30e
BLAKE2b-256 checksum
How to use checksums
4ab5821cdd97571b2f041ccf7ec82065392e48d2ac5815baacdc6dbbfb2b1031
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp310-cp310-macosx_10_9_universal2.whl

Download URL frozendict-2.5.1-cp310-cp310-macosx_10_9_universal2.whl
Size 62.3 kB
Tags CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
b49f3c24b6ebca99521cfd63a54e49e3b99ba298eaddee712cfb823b446683b7
BLAKE2b-256 checksum
How to use checksums
9d9cec02c8085e388c89355604431566485461b080f1e5315e36d7a2d4ce7508
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp39-cp39-win_amd64.whl

Download URL frozendict-2.5.1-cp39-cp39-win_amd64.whl
Size 38.7 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
545b7ad020c291f7889215e67484e15064a21d2338e6758cdf81479d42cb61c9
BLAKE2b-256 checksum
How to use checksums
e5cef96938fe0f5aa333db6a7d33e8f309765f80120c0f9822326991e9995d25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp39-cp39-win32.whl

Download URL frozendict-2.5.1-cp39-cp39-win32.whl
Size 35.9 kB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
53a8fdc807db8d7e9c05e76b89057b2bcd40f8eb198aeb28138ea33564c7ee0f
BLAKE2b-256 checksum
How to use checksums
a7cca6edd69909ed917ef1e801bd5117ca5bcefed17a9862ad9ef2cf90c1e480
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp39-cp39-musllinux_1_2_s390x.whl

Download URL frozendict-2.5.1-cp39-cp39-musllinux_1_2_s390x.whl
Size 118.9 kB
Tags CPython 3.9 Linux musl 1.2+ IBM System/390x
SHA-256 checksum
How to use checksums
586bd91b6f08c1cce823a724da4eab2a758eb739109a278c3ed427bac2d1a224
BLAKE2b-256 checksum
How to use checksums
6b1fe5a77197bc1e28fde904ccd00bde611dcb4bf4bb8ed6602ebd3b16b65421
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp39-cp39-musllinux_1_2_riscv64.whl

Download URL frozendict-2.5.1-cp39-cp39-musllinux_1_2_riscv64.whl
Size 111.8 kB
Tags CPython 3.9 Linux musl 1.2+ RISC-V 64
SHA-256 checksum
How to use checksums
6cf2059c7cc631810587ee59e22d4d31d34bc53cea995750c02b2c8fb874a417
BLAKE2b-256 checksum
How to use checksums
6c98e9caa1f8060ddd95058fee6e8bb59791a6de6fcc306374804b8be47c8fb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp39-cp39-musllinux_1_2_ppc64le.whl

Download URL frozendict-2.5.1-cp39-cp39-musllinux_1_2_ppc64le.whl
Size 123.2 kB
Tags CPython 3.9 Linux musl 1.2+ PowerPC 64-le
SHA-256 checksum
How to use checksums
acd3e0c1c296d181b6a58d006b55083fccc1483d1f763e8e040cb1076b72ae23
BLAKE2b-256 checksum
How to use checksums
83227ef94a7345bd27acfec151ca83b900120409fddfce19e2fe5202f5f8734e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp39-cp39-musllinux_1_2_i686.whl

Download URL frozendict-2.5.1-cp39-cp39-musllinux_1_2_i686.whl
Size 110.5 kB
Tags CPython 3.9 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
ddaa5c7538e688e161e2695293c4e2aca0d439594cf4ae2949ac0b323b68f7e9
BLAKE2b-256 checksum
How to use checksums
80881c614de86e828d3bf53db3710f924c7d3515a73ca09ccc49e67d631f4553
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp39-cp39-musllinux_1_2_armv7l.whl

Download URL frozendict-2.5.1-cp39-cp39-musllinux_1_2_armv7l.whl
Size 108.2 kB
Tags CPython 3.9 Linux musl 1.2+ ARMv7l
SHA-256 checksum
How to use checksums
509db063b2b1ecddd328b0aee0e855cedac08b637f3a7b5fe80b6e2535126e9f
BLAKE2b-256 checksum
How to use checksums
605d0d778610d08f2691f036af2aca51e24d78b2f3b342b7c6b6772ddb4accce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl

Download URL frozendict-2.5.1-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl
Size 112.3 kB
Tags CPython 3.9 Linux glibc 2.31+ RISC-V 64 Linux glibc 2.39+ RISC-V 64
SHA-256 checksum
How to use checksums
3b291e54c17740ee02798d7f18290882f36a10b0388b76d89ab51d6fe716399d
BLAKE2b-256 checksum
How to use checksums
fca4765e048cccabd0ab0eeded148e73a071a6f844036f3c76ffd114af476b43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL frozendict-2.5.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 116.7 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
03ac45992f8a11bca91641858216b41381f08df7990b843b8719faba40ccafa5
BLAKE2b-256 checksum
How to use checksums
49e39a7c2ef1f5105bd3865aeedde76cc2f8546a0d577203f866b53404c7c80c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl

Download URL frozendict-2.5.1-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Size 122.3 kB
Tags CPython 3.9 Linux glibc 2.17+ IBM System/390x Linux glibc 2.28+ IBM System/390x
SHA-256 checksum
How to use checksums
0321bfcaaa30654b358000d1e395dca4710a8202f2e5d4ac228cd22867b7dab9
BLAKE2b-256 checksum
How to use checksums
462b34ed0e86ea39356e66b00f701a06de8d6dfb3ae863d66ff017f86c85b045
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl

Download URL frozendict-2.5.1-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Size 126.0 kB
Tags CPython 3.9 Linux glibc 2.17+ PowerPC 64-le Linux glibc 2.28+ PowerPC 64-le
SHA-256 checksum
How to use checksums
9621fa37304a5fbeaccacd9e5bd4cf601d7d39a1464b6310e04dc07cc9c4eab9
BLAKE2b-256 checksum
How to use checksums
54f51b6954f647d523bea7e408dfc188dcd08caa5d60cc0b699994a25ebd4e45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp39-cp39-macosx_10_9_universal2.whl

Download URL frozendict-2.5.1-cp39-cp39-macosx_10_9_universal2.whl
Size 61.4 kB
Tags CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
52618b53539e2c4f8dd9ba0427b970acca305e99515618b9e37911104f1067a2
BLAKE2b-256 checksum
How to use checksums
c2608110563144fc45f8d03edcef75ee1b2416aa65019272e86cdf4be5eddb98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp38-cp38-win_amd64.whl

Download URL frozendict-2.5.1-cp38-cp38-win_amd64.whl
Size 38.0 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
a05b2be37c3abbb385df5662f5083a1b88e5bf4237180a45e430d54d4cd44206
BLAKE2b-256 checksum
How to use checksums
ffd90e8d01183f34faaf99b5144409de8a27e14aa54aa052f4aa0ecd282a55b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp38-cp38-win32.whl

Download URL frozendict-2.5.1-cp38-cp38-win32.whl
Size 35.2 kB
Tags CPython 3.8 Windows x86-32
SHA-256 checksum
How to use checksums
3c484e2853f049d9b15f5901fad749e0e506e909a2a09dd4bed208f747768fd9
BLAKE2b-256 checksum
How to use checksums
814a9074229fcba52d174d40b694bbeacc500f4c49079c8bafe6e091243f3d43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp38-cp38-musllinux_1_2_s390x.whl

Download URL frozendict-2.5.1-cp38-cp38-musllinux_1_2_s390x.whl
Size 113.0 kB
Tags CPython 3.8 Linux musl 1.2+ IBM System/390x
SHA-256 checksum
How to use checksums
6e99aacacd020ad70207553a97a82761eecafea5786bb1a9fc721af5027c2dd9
BLAKE2b-256 checksum
How to use checksums
6668b90f30ff9f15e6def8aee5798ebbec62a60d53db891529cd08b5334b9d83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp38-cp38-musllinux_1_2_riscv64.whl

Download URL frozendict-2.5.1-cp38-cp38-musllinux_1_2_riscv64.whl
Size 107.3 kB
Tags CPython 3.8 Linux musl 1.2+ RISC-V 64
SHA-256 checksum
How to use checksums
b2521d1e4278ddfaefb2704170a58142e29df48ad4c83c651470985b10cfb792
BLAKE2b-256 checksum
How to use checksums
4a141d946f71500adc7d3ebd119b70298477ff61a61011bcad3387f1de065832
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp38-cp38-musllinux_1_2_ppc64le.whl

Download URL frozendict-2.5.1-cp38-cp38-musllinux_1_2_ppc64le.whl
Size 116.8 kB
Tags CPython 3.8 Linux musl 1.2+ PowerPC 64-le
SHA-256 checksum
How to use checksums
10f3c12ca91910f97c29197372eb11bf1bc4e64ffbff8eb3bc4ca965ecfef1fc
BLAKE2b-256 checksum
How to use checksums
7caaa42cc84d37f228faf490a23a7644bc8c42c018c9fed87ca7a4579e2fffb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp38-cp38-musllinux_1_2_i686.whl

Download URL frozendict-2.5.1-cp38-cp38-musllinux_1_2_i686.whl
Size 105.6 kB
Tags CPython 3.8 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
9e2e693e28d1cfb8df26cdeb877c763ceafecaa32cdcfaee513b000bf67727cd
BLAKE2b-256 checksum
How to use checksums
457f09da5113dbb3aefdb6301d5638da7999e42622834a45528c44318f32e30c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp38-cp38-musllinux_1_2_armv7l.whl

Download URL frozendict-2.5.1-cp38-cp38-musllinux_1_2_armv7l.whl
Size 103.2 kB
Tags CPython 3.8 Linux musl 1.2+ ARMv7l
SHA-256 checksum
How to use checksums
75a50a8e4fd232fb242c32b7d78975a7aee2828baa5e9b1e0151d91fda61e2b1
BLAKE2b-256 checksum
How to use checksums
27c9111e63306757705fbeee4f8ec43d366a853376f45ddd6192a653a3c9f558
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp38-cp38-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl

Download URL frozendict-2.5.1-cp38-cp38-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl
Size 108.0 kB
Tags CPython 3.8 Linux glibc 2.31+ RISC-V 64 Linux glibc 2.39+ RISC-V 64
SHA-256 checksum
How to use checksums
4ac6100e4065316d954a6d921178d09e6dc50ac20e49f0848f1a9fa4f2d44352
BLAKE2b-256 checksum
How to use checksums
9109c0fdc936256eebaf928eb3dbdc0783dacb6e844a7302c3d41aa4f26cb38b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL frozendict-2.5.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 111.6 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ff31f60c91b8fa91ff1bc8d802f94be3a2386b5250ba19622f06eec9bdabb8f7
BLAKE2b-256 checksum
How to use checksums
1465de337d613bb69695ac80c16349a54e58492eb02fbd6984917bb69fe06b20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl

Download URL frozendict-2.5.1-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Size 117.0 kB
Tags CPython 3.8 Linux glibc 2.17+ IBM System/390x Linux glibc 2.28+ IBM System/390x
SHA-256 checksum
How to use checksums
b6db50744d31396e2950195aeb1ab4beb7766f277845f4654c871d38b824f5bf
BLAKE2b-256 checksum
How to use checksums
0d71513b06b776b5cdaf4bafd82b19123c508ad0c310d715792e437a9011f1ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl

Download URL frozendict-2.5.1-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Size 120.3 kB
Tags CPython 3.8 Linux glibc 2.17+ PowerPC 64-le Linux glibc 2.28+ PowerPC 64-le
SHA-256 checksum
How to use checksums
06ef3d03b853527c29603a4c3433f94a14cc08041061ce8231d7101a55006320
BLAKE2b-256 checksum
How to use checksums
c7c0633d59f477a1d44fd286043813ce6110ebdd61549af36691acbb11aa7015
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp38-cp38-macosx_10_9_universal2.whl

Download URL frozendict-2.5.1-cp38-cp38-macosx_10_9_universal2.whl
Size 59.4 kB
Tags CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
fec61966881770afbb3bfd3ce8566a2b42941a8a45ef622501e2599bb61e3790
BLAKE2b-256 checksum
How to use checksums
4dc2ed21612cb804066768cf1c55586e51eee68c8970ec25c5ed52b0c6424589
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp37-cp37m-win32.whl

Download URL frozendict-2.5.1-cp37-cp37m-win32.whl
Size 35.3 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
268ff626de7d8e740233fba372099e355bffbc7e0a217f7949fda359ad3a51ba
BLAKE2b-256 checksum
How to use checksums
556c747db635dea117a5f0fd22cb1eabd93ab55459a1b50d3bb6be657a343387
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp37-cp37m-musllinux_1_2_s390x.whl

Download URL frozendict-2.5.1-cp37-cp37m-musllinux_1_2_s390x.whl
Size 107.3 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux musl 1.2+ IBM System/390x
SHA-256 checksum
How to use checksums
301cfca94c4f09202488274cbd648cb32a10f3b0c64f830012f045fedb04b72c
BLAKE2b-256 checksum
How to use checksums
b464176b97cbfd9aaf0ad04137cccfaef0ab3979e1da653d541b3b99cce1a0e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp37-cp37m-musllinux_1_2_ppc64le.whl

Download URL frozendict-2.5.1-cp37-cp37m-musllinux_1_2_ppc64le.whl
Size 109.7 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux musl 1.2+ PowerPC 64-le
SHA-256 checksum
How to use checksums
3ec77c06a741bf5b3ec7c6e8bfb2462760941fff01d3605479d989b31dac06de
BLAKE2b-256 checksum
How to use checksums
c125ada749f996e65427325194e0d3b776e356d963b4ef3ae548235d366c2464
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp37-cp37m-musllinux_1_2_i686.whl

Download URL frozendict-2.5.1-cp37-cp37m-musllinux_1_2_i686.whl
Size 97.8 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
c5b320ea059125678f0dc0a821ac5d4f2b42bbba5f95fe7b3830b7a063d960c6
BLAKE2b-256 checksum
How to use checksums
c06e69fa331d0edc8fe6860a8cfc880f026bd7bc61281372ac843885c89e14ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp37-cp37m-musllinux_1_2_armv7l.whl

Download URL frozendict-2.5.1-cp37-cp37m-musllinux_1_2_armv7l.whl
Size 96.2 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux musl 1.2+ ARMv7l
SHA-256 checksum
How to use checksums
1dd1512f0f1907a63df39fef970b3ddf2c70b95eb16faccdd2cc9a951a5f25c9
BLAKE2b-256 checksum
How to use checksums
1ead58075822c382f4e293b19bec82c49193411ea754b0d24743bb1953a3ea03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL frozendict-2.5.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 106.8 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ IBM System/390x
SHA-256 checksum
How to use checksums
8b6cd673dda267d716f6b44a19aa2dbbe43cb0759b2785f224b41c401947f732
BLAKE2b-256 checksum
How to use checksums
00da388076399e61a445b1dcdeea6b7507613aefd3c8d60c658ac5a4638e2c4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL frozendict-2.5.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 111.9 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ PowerPC 64-le
SHA-256 checksum
How to use checksums
44b40357abcafe4e12d8065a6166910be81b3ecaf320b9ef117b8f64653f1edf
BLAKE2b-256 checksum
How to use checksums
6cf7dda962a63b2999bec6255dfc626ea0b03838ac92dcf0b659ac5102013347
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp37-cp37m-macosx_10_9_x86_64.whl

Download URL frozendict-2.5.1-cp37-cp37m-macosx_10_9_x86_64.whl
Size 39.0 kB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
6823bd6af19771b7081794ee63e2f1af04bd8181d7f4f945df8d006cecf8d3a9
BLAKE2b-256 checksum
How to use checksums
b1565fedc89172bcd267c6fecbfec211e11e860a230664ac17eda94f7b40bd01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp36-cp36m-win32.whl

Download URL frozendict-2.5.1-cp36-cp36m-win32.whl
Size 36.2 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
34e4449bd9d382701ccb64436534712055f1025fb0f294724eecbc3e768771bc
BLAKE2b-256 checksum
How to use checksums
4076cc523a28400ce9b769cdb9fb0cac62dea91bfc85eff972b896ec480298c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp36-cp36m-musllinux_1_2_s390x.whl

Download URL frozendict-2.5.1-cp36-cp36m-musllinux_1_2_s390x.whl
Size 105.3 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux musl 1.2+ IBM System/390x
SHA-256 checksum
How to use checksums
258f1ce2eecaa9bf48d4a6fe5d67ee6780e2b1dadddcc3dcb97eb1610268aa7b
BLAKE2b-256 checksum
How to use checksums
5a75ca0c7e0345de11e1be5ca5bc605feddbb4daf6d79b00b5b427bd972c17d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp36-cp36m-musllinux_1_2_ppc64le.whl

Download URL frozendict-2.5.1-cp36-cp36m-musllinux_1_2_ppc64le.whl
Size 107.4 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux musl 1.2+ PowerPC 64-le
SHA-256 checksum
How to use checksums
a0228985e8099f44416bdd949ac4ccf7d916944f11db03e07fefa0835c98a9a3
BLAKE2b-256 checksum
How to use checksums
f10386157926937840dae52715367676308bd26a6b4159b2a8a7577e9ca9a02c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp36-cp36m-musllinux_1_2_i686.whl

Download URL frozendict-2.5.1-cp36-cp36m-musllinux_1_2_i686.whl
Size 95.7 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
4f8b7638dd090267de7f3197395fbc2e78a05fc3ecf8c900c9f190476c142238
BLAKE2b-256 checksum
How to use checksums
cb926c4a08428c95b4dde8cbc24e7b49b454fd3947705c1fbf7d6c717fd70d93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp36-cp36m-musllinux_1_2_armv7l.whl

Download URL frozendict-2.5.1-cp36-cp36m-musllinux_1_2_armv7l.whl
Size 94.3 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux musl 1.2+ ARMv7l
SHA-256 checksum
How to use checksums
10c706277990e80d520df2b3d4c4bc3d17d8e75e1fd278f5cab976d1c40e7182
BLAKE2b-256 checksum
How to use checksums
ebfcc3780a2f86474b8ab138c7587ac289aa836d2a3a8eb47536495255f23d9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL frozendict-2.5.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 104.8 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ IBM System/390x
SHA-256 checksum
How to use checksums
4fc9ff72a431efab83f2bf655e2af96d4c709eda3ebef54cd4b6d05e3b7c3940
BLAKE2b-256 checksum
How to use checksums
799c9c66168b558d8c7a30a4eb866dc681c425ebc4fda8b2889ce774b6b640d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL frozendict-2.5.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 109.2 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ PowerPC 64-le
SHA-256 checksum
How to use checksums
bd54d261eeb5764e86486a624ea9fdbd76540222a0957fae2f92b2eb1adbb2b9
BLAKE2b-256 checksum
How to use checksums
ed53d4d3169299d898728903d1442f1c43f9979204b6a391717d742f008a0cfe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / frozendict-2.5.1-cp36-cp36m-macosx_10_9_x86_64.whl

Download URL frozendict-2.5.1-cp36-cp36m-macosx_10_9_x86_64.whl
Size 38.8 kB
Tags CPython 3.6 CPython 3.6 pymalloc macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
a4852ff0507b0aefc1f7956c5724dcbbfdbd298cb7e2fb0e9973a427b3e47936
BLAKE2b-256 checksum
How to use checksums
e55699abce898ea49b79e64d6cb984f2ac457a584f223460c0b6a5eda98e2983
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Security for frozendict 2.5.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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.

Release history Release notifications | RSS feed

This release

2.5.1 This release

54 release files No provenance

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