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.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 frozendict 2.5.0
File Size Uploaded Provenance Actions
frozendict-2.5.0.tar.gz 336.9 kB Without provenance Details for frozendict-2.5.0.tar.gz

Built distributions (wheels)

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

Total release size: 5.3 MB

Release files / frozendict-2.5.0.tar.gz

Download URL frozendict-2.5.0.tar.gz
Size 336.9 kB
Tags Source
SHA-256 checksum
How to use checksums
336de5e7fd05b73ef07a3da368c986c68fd63fbcf9c41340d18e45d6d03e9a4c
BLAKE2b-256 checksum
How to use checksums
0d116eada4cad6b4cf459cd73a9273dd67dc3cafc022b73f9f4f5d53b57d586d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-py3-none-any.whl
Size 18.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4ebd9f0e3ceaa96ac3af978260ef4c1257d50c960559d124063a240ba36aa585
BLAKE2b-256 checksum
How to use checksums
473f444ea9d2c5c06cb322d217c3ff9df4736bc82277621b1f37f52fdf22d2b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp310-cp310-win_amd64.whl
Size 39.1 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
65e65a56c039efb154aabfab94d76aa916aee5d27b675af8c0b59313e79758f3
BLAKE2b-256 checksum
How to use checksums
48a110002ef38135de2f82b6e2076fdbdb26f3129adf06256a9474557e91cec2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

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

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

Download URL frozendict-2.5.0-cp310-cp310-musllinux_1_2_s390x.whl
Size 127.2 kB
Tags CPython 3.10 Linux musl 1.2+ IBM System/390x
SHA-256 checksum
How to use checksums
00dd0502446cc5978d51a75868eeed74c1d38875974f563a32d50c5113d18aca
BLAKE2b-256 checksum
How to use checksums
a04e2bf8caec72bce60528da7e85f9a18ad1ebcad2cdea3da321ab4e3dc95e16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp310-cp310-musllinux_1_2_riscv64.whl
Size 117.4 kB
Tags CPython 3.10 Linux musl 1.2+ RISC-V 64
SHA-256 checksum
How to use checksums
0b6a32bcac0ed02684e82d0560da0c8514498a4e00762f3f6694a769559f5019
BLAKE2b-256 checksum
How to use checksums
619914f87d0b70375798bef9557cb0e9f79e378598f98edbcac36652cbeffe8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl
Size 130.7 kB
Tags CPython 3.10 Linux musl 1.2+ PowerPC 64-le
SHA-256 checksum
How to use checksums
772a972fe08d2763f320df3fe76bc2650c70bbf175893e6582cb204741f2f245
BLAKE2b-256 checksum
How to use checksums
4b30c470b8f45a0fb37825200e177ef4354ac3a27303eb4450fbce5e2bfce2dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
87bd7839e034d63bae38f18e90567fcbbb45d487f86694e569aed90c8f4b65b1
BLAKE2b-256 checksum
How to use checksums
0c39ca7a619f30ad5b9e4215b3dc5ae11b525146a5313a11c77eed403d71503e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp310-cp310-musllinux_1_2_armv7l.whl
Size 113.8 kB
Tags CPython 3.10 Linux musl 1.2+ ARMv7l
SHA-256 checksum
How to use checksums
849f50fb3464082d1bb91693078d92c776311adc6c2a5456f075669f990104c8
BLAKE2b-256 checksum
How to use checksums
deaccbeeb746283790881b8cda216f4f827c4bb23a15abec8af5365349d77ccf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
8105a9ff24445381af0be4216b22ef3521b178707d05a9c90d4a9d180a0945d5
BLAKE2b-256 checksum
How to use checksums
ab5c1a162b9810cadf91b769ee171f33f6ba6bdc26ecf8dbd2a8359f6d85947e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
694855476f0a4d5c982b75188d5f547ac147e28699109c58737b24c5d285ceda
BLAKE2b-256 checksum
How to use checksums
173b8fe36ee8596749135c788c390574ddcc36937ca87c3fcf4ec805f946a60e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
1c6a689a52751a5176517a55b43db5461f7e0c25db3966408e1a6fcfd8bbe9a1
BLAKE2b-256 checksum
How to use checksums
68bfac59c91825613768bf351a26a9c90053f9d98cc7c8c0663aaf9ed50630b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Size 133.9 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
649282c61c0e618d6ce4d4166c3b006957ec38da3088a5962a103dc53bfd7015
BLAKE2b-256 checksum
How to use checksums
5d5176a5355111081610b0cbee81cdab1c1fc5250a1365e987137335434bddb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
ed584dfc2418b66c1714db6bf686e3d0b6d8f66d067bff686a21009fab6e2b14
BLAKE2b-256 checksum
How to use checksums
2b3295c89320edfecd6313cda76b90f137b5831d27a43e1edd2fc77b55f6dc4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp39-cp39-win_amd64.whl
Size 38.7 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
7baa93ba0fd358f7d02a2ac4699d126deba9a479c6205d89ad5d12c3baff2b90
BLAKE2b-256 checksum
How to use checksums
157ef3112b180719ba81484b85fc2c27145c7d96dcce866acaf79cbb580e0b37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp39-cp39-win32.whl
Size 35.8 kB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
c415913046a7ac10c85edce8592c84d5d2efad66f6a45f0b8f16199f2db7d3db
BLAKE2b-256 checksum
How to use checksums
88f5998cbd3cec92eb30b17d85ce38b8ad2ac3e40d2491b7bb789743bf065437
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp39-cp39-musllinux_1_2_s390x.whl
Size 118.8 kB
Tags CPython 3.9 Linux musl 1.2+ IBM System/390x
SHA-256 checksum
How to use checksums
a76c19ca55678f0fedc9fd4d7bd6773259039ef915eda219b92f6ef2f33c92ef
BLAKE2b-256 checksum
How to use checksums
9c8234ce19b18bfd227309ba439968f1b414a82a79deffb3435f7eb00231fb1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp39-cp39-musllinux_1_2_riscv64.whl
Size 111.9 kB
Tags CPython 3.9 Linux musl 1.2+ RISC-V 64
SHA-256 checksum
How to use checksums
ff97e207af1ecc9c0160ba14847d5c72fe6744013baa7f38ce7c2d81347ff29f
BLAKE2b-256 checksum
How to use checksums
240a7cdd180a601c1f9b2b63b5db63550f59657a5dd9f95fbccf11c7069c9e3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl
Size 123.3 kB
Tags CPython 3.9 Linux musl 1.2+ PowerPC 64-le
SHA-256 checksum
How to use checksums
8a3c22cfe9cd320cf08c8fb5495e009986980f8bed102bd10d73a0f1b43cfb8a
BLAKE2b-256 checksum
How to use checksums
7f2fbe5931816e6c37d71813c6465f2c5be271a4619f745426a66339e5525bed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp39-cp39-musllinux_1_2_i686.whl
Size 110.7 kB
Tags CPython 3.9 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
171c5ae42e7791893367b24e956b2e97b8711263f08618cfabbd640961de7f93
BLAKE2b-256 checksum
How to use checksums
10740fb3ff4b473b96d39f53a6ea1ceccd1e196794a33f61ab533af18cf413d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp39-cp39-musllinux_1_2_armv7l.whl
Size 108.3 kB
Tags CPython 3.9 Linux musl 1.2+ ARMv7l
SHA-256 checksum
How to use checksums
8637a167133db33dbd069a363f0184320a27bb2582af499c85c20cc42ba8a2d8
BLAKE2b-256 checksum
How to use checksums
7f31d2aaaf7a49a0b4e5bc892f7f4ee8b7330d79b4bca774a13805c10e5bd103
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
3f9830524b2d629edc96b467aee57f0a5142907dbe73fa52e736ce105679b01e
BLAKE2b-256 checksum
How to use checksums
6790428b76396c0f78f9c38591b7bfc7dae42e589d69ace1d1cc5c73a00c5e8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
23ac61c951c6108b7702e5c959b85214f7114f74e78c43dcfc43951cb26e1e2f
BLAKE2b-256 checksum
How to use checksums
c726089fd635ae234cd8cd930f58e5c327402cb440310a15d0404c006f0ac18a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
d78b782c4697c2d23b94fe9ddaf973e3d84b925615fd6e934cc961100a5ae32e
BLAKE2b-256 checksum
How to use checksums
f19fe06ca828d9325b571fb23e040527b32294595ec285d8d8fe4c7f5a381fd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
83b5126b96f9958b241216cce34ef1f2e8571320963b0983abc67da989a785ff
BLAKE2b-256 checksum
How to use checksums
73692c3ae15e379305373ef9b0f3142e2ba017339fb1786158a7d622a169db2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
57ce81d7a66147b6e96f0b3a4cebc63e0c6c4fcd4ddeff9b0b4d49e2b25d28d9
BLAKE2b-256 checksum
How to use checksums
ddf053c2bf1b14014def3b74f2aa0dad3d08507bbc398713d38e62720ad94fbe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

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

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

Download URL frozendict-2.5.0-cp38-cp38-win32.whl
Size 35.2 kB
Tags CPython 3.8 Windows x86-32
SHA-256 checksum
How to use checksums
d84927df7f6716b9c44037e7336909eaf9ea3631b8c93cbe7e66cfb557deb671
BLAKE2b-256 checksum
How to use checksums
1111ffaf90284e12b4a98fc2d6f5dad7bc96e5b09ff719012786b814aa7d2755
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp38-cp38-musllinux_1_2_s390x.whl
Size 112.8 kB
Tags CPython 3.8 Linux musl 1.2+ IBM System/390x
SHA-256 checksum
How to use checksums
7fbfd11aa483be9ec254eccfcb40f4f33f3d659b3b443732ae6dad704dd4faf4
BLAKE2b-256 checksum
How to use checksums
69bc1b915804ffec5837e9d9ab28cfcff65ab553e222bbb86db6e58d372c336e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
69114e79eb00a2632089226db2f65527f9d54d3130de65a17eb2a208459d2104
BLAKE2b-256 checksum
How to use checksums
d2b678f2b582601c0cfd881e9fdb96238bd1fe1fc8e194276f3156e89d329ff3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl
Size 116.7 kB
Tags CPython 3.8 Linux musl 1.2+ PowerPC 64-le
SHA-256 checksum
How to use checksums
21becfddf1fd90308dbec575d292d01fb09e324fa48e9ec39e4c32990fb5c331
BLAKE2b-256 checksum
How to use checksums
a7e7df3c1186542f94d7a14db4f78c4dc5821dd267f1c3d99a70a3e43b619ef4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp38-cp38-musllinux_1_2_i686.whl
Size 105.4 kB
Tags CPython 3.8 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
f2590310ed6c864eb3db51eb7fb400d6942c9ed2be98cb0082f0e2e084797e70
BLAKE2b-256 checksum
How to use checksums
e0c3418873a3cf7c77b64c85a5a461d97d2634b6145df6328f3bf74b87dcb8a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp38-cp38-musllinux_1_2_armv7l.whl
Size 103.4 kB
Tags CPython 3.8 Linux musl 1.2+ ARMv7l
SHA-256 checksum
How to use checksums
9911327d1721a01fbe80001955ab5bfec4c232ae993c3c2308239c31f9e27d79
BLAKE2b-256 checksum
How to use checksums
3b7090740e79d5d26de5dc93dc05cc9f6d8ea293a4a9400855e202cf009f3061
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
f80942f45ff578c27cc776ea61955285aa476db4b523405dc4da98ab42a40325
BLAKE2b-256 checksum
How to use checksums
e89db31702af9ec8194ac4704181744f1a1ac1a1a9863619e1a4b83fdbd57f12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 111.5 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
65b7f68e9222b73667c0216e6deb2618ede170d2c66c2d5e51eda802d0f44acf
BLAKE2b-256 checksum
How to use checksums
16818a4f5f3e1534db47a71fb4c2dd53c8645c1f68b1475d5b8aaa06c08173f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
5d984de615dbaed44bbbe199b44987df5dbe37baa508c2b866f1dca5db6d95a1
BLAKE2b-256 checksum
How to use checksums
e57c6af7ebb342b3efb640558a8f80d8be5114219428f58c1cfe197b1dee3325
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
31cc1980f6a3cd92be1bc409e1f7da7ee47cdae5ff570c1bf4457369b7d60ffc
BLAKE2b-256 checksum
How to use checksums
f713527746010f049bf8f8117e9f98f3371908bccd586b3df8af1cfd227c88ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
aab542826f9785076eb519153959a15b9bbe92e96ee8c6027680be14c86f104a
BLAKE2b-256 checksum
How to use checksums
7573ecdffd000879e75836fecd6992ac0321b2b1b1bcde4f3678f7f221680d33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
ed36ca9821848892bd723d9ae963a51229d67c7ef98c40a4b24df287ddc77154
BLAKE2b-256 checksum
How to use checksums
9f6809d35ac62e50b2e6155fcd0e8e95b352ffe44daaae84331c990d4a267b2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp37-cp37m-musllinux_1_2_s390x.whl
Size 107.4 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux musl 1.2+ IBM System/390x
SHA-256 checksum
How to use checksums
19e2cc7918cb0486ac75b8d8d9edd94e0cd881f2bf7ac835108d4cc964a4e69d
BLAKE2b-256 checksum
How to use checksums
9947e3d5bb323ba04847c341aebe769ebed3adfb9a44ce614404244aa8d90e86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

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

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

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

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

Download URL frozendict-2.5.0-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
8aa0592cd5bbea461409942855fd06e84fdcacff2c1f50c2ef3e575464a322fb
BLAKE2b-256 checksum
How to use checksums
72af7ce5505c8ac4a76282fa64183ee25ef24acc8c62d9278a38b6703f6a767a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

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

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

Download URL frozendict-2.5.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 111.8 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ PowerPC 64-le
SHA-256 checksum
How to use checksums
538df6256d64142982a82293e0cd6488b945e5d59ec01b65e1b9e9eb9a47881d
BLAKE2b-256 checksum
How to use checksums
35665102e0b2d22a1aa6283e5ee123a3e6cc029ca426a613a6f45b5bb864b0fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
c136993950d6ef1d1b45e77a71e8c712aa616ef171166b2d575fc27885e6d996
BLAKE2b-256 checksum
How to use checksums
5438a56b06cf7fb31d18c47975b635d18517d0ad119f041447e5f28186a15506
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
c2413935c7c872c0c818f8f780cfe0ffdf6d6047f87ded3655ae494079b39df6
BLAKE2b-256 checksum
How to use checksums
10065f39585299aa2c1e6f38fa3f47a89c0563ac7c2d764c7004d7a1256575fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
3565559bde2b40aadebe756d62516d05e0df6a83b7a3c551dcfb6c7005419261
BLAKE2b-256 checksum
How to use checksums
da75b8ccdd22bb73f4228ab7ba56fce4b2cd92725bc1ad6bb7ff39f6f0217878
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp36-cp36m-musllinux_1_2_ppc64le.whl
Size 107.5 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux musl 1.2+ PowerPC 64-le
SHA-256 checksum
How to use checksums
77ce643894382cb368a2e0187baeaf9e8eb716e21d071ef5a9363b887f6d3226
BLAKE2b-256 checksum
How to use checksums
0f29e33d79bfeda65a75fb2c62993335df3fb023ac09354cfd1ac8ea96e2a11e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp36-cp36m-musllinux_1_2_i686.whl
Size 95.8 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
837087bcf83d37f1f88851d9166058681c9395ef40f522c764fe87ed2ecc0c8a
BLAKE2b-256 checksum
How to use checksums
97daad8fa49eda95ca4c2bb993e77e76e6bc06274813c5c6c94375e39279bd89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

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

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

Download URL frozendict-2.5.0-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
082e6ac3abf2980c38fcd5263bb4be20bc58e704b23896c301df5d65beb25c44
BLAKE2b-256 checksum
How to use checksums
b3b3613cc1694f53069499964cc96c00ddba8402c9a541f4a795d28b5a771c19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 109.0 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ PowerPC 64-le
SHA-256 checksum
How to use checksums
82d9bc328a89cb9642cfb9e3868bc361ce648792e0ba6994000156090c9a8464
BLAKE2b-256 checksum
How to use checksums
30c26beeb8c84a4c45bbf4ed452fc2e90d4e52ef9ad1304d36c43e278f73d6ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

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

Download URL frozendict-2.5.0-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
4cd660c210c2b3c89a37ec361abb8a957b1dbf9081a09175bd1f6356de9d0e49
BLAKE2b-256 checksum
How to use checksums
e9b1c55ef836b4aebf92b9b09cc914c5de612cbf5ff84af7e1e6e919875140ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

Security for frozendict 2.5.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.

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.0 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