Skip to main content

A simple immutable dictionary

Project description

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 and frozendict[1]:

################################################################################
////////////////////////////////////////////////////////////////////////////////
Name: `constructor(d)`;         Size:    5; Keys: str; Type:       dict; Time: 8.02e-08; Sigma: 4e-09
Name: `constructor(d)`;         Size:    5; Keys: str; Type: frozendict; Time: 8.81e-08; Sigma: 3e-09
////////////////////////////////////////////////////////////////////////////////
Name: `constructor(d)`;         Size:    5; Keys: int; Type:       dict; Time: 7.96e-08; Sigma: 5e-09
Name: `constructor(d)`;         Size:    5; Keys: int; Type: frozendict; Time: 8.97e-08; Sigma: 2e-09
////////////////////////////////////////////////////////////////////////////////
Name: `constructor(d)`;         Size: 1000; Keys: str; Type:       dict; Time: 6.38e-06; Sigma: 9e-08
Name: `constructor(d)`;         Size: 1000; Keys: str; Type: frozendict; Time: 6.21e-06; Sigma: 2e-07
////////////////////////////////////////////////////////////////////////////////
Name: `constructor(d)`;         Size: 1000; Keys: int; Type:       dict; Time: 3.49e-06; Sigma: 3e-07
Name: `constructor(d)`;         Size: 1000; Keys: int; Type: frozendict; Time: 3.48e-06; Sigma: 2e-07
################################################################################
////////////////////////////////////////////////////////////////////////////////
Name: `constructor(kwargs)`;    Size:    5; Keys: str; Type:       dict; Time: 2.40e-07; Sigma: 1e-09
Name: `constructor(kwargs)`;    Size:    5; Keys: str; Type: frozendict; Time: 2.48e-07; Sigma: 2e-09
////////////////////////////////////////////////////////////////////////////////
Name: `constructor(kwargs)`;    Size: 1000; Keys: str; Type:       dict; Time: 4.80e-05; Sigma: 1e-06
Name: `constructor(kwargs)`;    Size: 1000; Keys: str; Type: frozendict; Time: 2.90e-05; Sigma: 7e-07
################################################################################
////////////////////////////////////////////////////////////////////////////////
Name: `constructor(seq2)`;      Size:    5; Keys: str; Type:       dict; Time: 2.01e-07; Sigma: 9e-10
Name: `constructor(seq2)`;      Size:    5; Keys: str; Type: frozendict; Time: 2.50e-07; Sigma: 1e-09
////////////////////////////////////////////////////////////////////////////////
Name: `constructor(seq2)`;      Size:    5; Keys: int; Type:       dict; Time: 2.18e-07; Sigma: 2e-09
Name: `constructor(seq2)`;      Size:    5; Keys: int; Type: frozendict; Time: 2.73e-07; Sigma: 1e-09
////////////////////////////////////////////////////////////////////////////////
Name: `constructor(seq2)`;      Size: 1000; Keys: str; Type:       dict; Time: 4.29e-05; Sigma: 6e-07
Name: `constructor(seq2)`;      Size: 1000; Keys: str; Type: frozendict; Time: 4.33e-05; Sigma: 6e-07
////////////////////////////////////////////////////////////////////////////////
Name: `constructor(seq2)`;      Size: 1000; Keys: int; Type:       dict; Time: 3.04e-05; Sigma: 4e-07
Name: `constructor(seq2)`;      Size: 1000; Keys: int; Type: frozendict; Time: 3.45e-05; Sigma: 4e-07
################################################################################
////////////////////////////////////////////////////////////////////////////////
Name: `constructor(o)`;         Size:    5; Keys: str; Type:       dict; Time: 7.93e-08; Sigma: 3e-09
Name: `constructor(o)`;         Size:    5; Keys: str; Type: frozendict; Time: 2.41e-08; Sigma: 6e-10
////////////////////////////////////////////////////////////////////////////////
Name: `constructor(o)`;         Size:    5; Keys: int; Type:       dict; Time: 7.94e-08; Sigma: 5e-09
Name: `constructor(o)`;         Size:    5; Keys: int; Type: frozendict; Time: 2.41e-08; Sigma: 6e-10
////////////////////////////////////////////////////////////////////////////////
Name: `constructor(o)`;         Size: 1000; Keys: str; Type:       dict; Time: 6.18e-06; Sigma: 3e-07
Name: `constructor(o)`;         Size: 1000; Keys: str; Type: frozendict; Time: 2.41e-08; Sigma: 6e-10
////////////////////////////////////////////////////////////////////////////////
Name: `constructor(o)`;         Size: 1000; Keys: int; Type:       dict; Time: 3.47e-06; Sigma: 2e-07
Name: `constructor(o)`;         Size: 1000; Keys: int; Type: frozendict; Time: 2.41e-08; Sigma: 6e-10
################################################################################
////////////////////////////////////////////////////////////////////////////////
Name: `o.copy()`;               Size:    5; Keys: str; Type:       dict; Time: 7.28e-08; Sigma: 2e-09
Name: `o.copy()`;               Size:    5; Keys: str; Type: frozendict; Time: 3.18e-08; Sigma: 2e-09
////////////////////////////////////////////////////////////////////////////////
Name: `o.copy()`;               Size:    5; Keys: int; Type:       dict; Time: 7.21e-08; Sigma: 4e-09
Name: `o.copy()`;               Size:    5; Keys: int; Type: frozendict; Time: 3.32e-08; Sigma: 2e-09
////////////////////////////////////////////////////////////////////////////////
Name: `o.copy()`;               Size: 1000; Keys: str; Type:       dict; Time: 6.16e-06; Sigma: 3e-07
Name: `o.copy()`;               Size: 1000; Keys: str; Type: frozendict; Time: 3.18e-08; Sigma: 2e-09
////////////////////////////////////////////////////////////////////////////////
Name: `o.copy()`;               Size: 1000; Keys: int; Type:       dict; Time: 3.46e-06; Sigma: 1e-07
Name: `o.copy()`;               Size: 1000; Keys: int; Type: frozendict; Time: 3.18e-08; Sigma: 2e-09
################################################################################
////////////////////////////////////////////////////////////////////////////////
Name: `o == o`;                 Size:    5; Keys: str; Type:       dict; Time: 7.23e-08; Sigma: 8e-10
Name: `o == o`;                 Size:    5; Keys: str; Type: frozendict; Time: 2.44e-08; Sigma: 2e-09
////////////////////////////////////////////////////////////////////////////////
Name: `o == o`;                 Size:    5; Keys: int; Type:       dict; Time: 7.30e-08; Sigma: 1e-09
Name: `o == o`;                 Size:    5; Keys: int; Type: frozendict; Time: 2.44e-08; Sigma: 2e-09
////////////////////////////////////////////////////////////////////////////////
Name: `o == o`;                 Size: 1000; Keys: str; Type:       dict; Time: 1.38e-05; Sigma: 1e-07
Name: `o == o`;                 Size: 1000; Keys: str; Type: frozendict; Time: 2.44e-08; Sigma: 2e-09
////////////////////////////////////////////////////////////////////////////////
Name: `o == o`;                 Size: 1000; Keys: int; Type:       dict; Time: 1.05e-05; Sigma: 7e-08
Name: `o == o`;                 Size: 1000; Keys: int; Type: frozendict; Time: 2.44e-08; Sigma: 2e-09
################################################################################
////////////////////////////////////////////////////////////////////////////////
Name: `for x in o`;             Size:    5; Keys: str; Type:       dict; Time: 7.33e-08; Sigma: 2e-09
Name: `for x in o`;             Size:    5; Keys: str; Type: frozendict; Time: 6.70e-08; Sigma: 1e-09
////////////////////////////////////////////////////////////////////////////////
Name: `for x in o`;             Size:    5; Keys: int; Type:       dict; Time: 7.33e-08; Sigma: 2e-09
Name: `for x in o`;             Size:    5; Keys: int; Type: frozendict; Time: 6.70e-08; Sigma: 1e-09
////////////////////////////////////////////////////////////////////////////////
Name: `for x in o`;             Size: 1000; Keys: str; Type:       dict; Time: 8.84e-06; Sigma: 5e-08
Name: `for x in o`;             Size: 1000; Keys: str; Type: frozendict; Time: 7.06e-06; Sigma: 6e-08
////////////////////////////////////////////////////////////////////////////////
Name: `for x in o`;             Size: 1000; Keys: int; Type:       dict; Time: 8.67e-06; Sigma: 7e-08
Name: `for x in o`;             Size: 1000; Keys: int; Type: frozendict; Time: 6.94e-06; Sigma: 3e-08
################################################################################
////////////////////////////////////////////////////////////////////////////////
Name: `for x in o.values()`;    Size:    5; Keys: str; Type:       dict; Time: 7.28e-08; Sigma: 9e-10
Name: `for x in o.values()`;    Size:    5; Keys: str; Type: frozendict; Time: 6.48e-08; Sigma: 8e-10
////////////////////////////////////////////////////////////////////////////////
Name: `for x in o.values()`;    Size:    5; Keys: int; Type:       dict; Time: 7.25e-08; Sigma: 1e-09
Name: `for x in o.values()`;    Size:    5; Keys: int; Type: frozendict; Time: 6.45e-08; Sigma: 1e-09
////////////////////////////////////////////////////////////////////////////////
Name: `for x in o.values()`;    Size: 1000; Keys: str; Type:       dict; Time: 9.06e-06; Sigma: 5e-07
Name: `for x in o.values()`;    Size: 1000; Keys: str; Type: frozendict; Time: 7.04e-06; Sigma: 4e-08
////////////////////////////////////////////////////////////////////////////////
Name: `for x in o.values()`;    Size: 1000; Keys: int; Type:       dict; Time: 9.53e-06; Sigma: 3e-08
Name: `for x in o.values()`;    Size: 1000; Keys: int; Type: frozendict; Time: 6.97e-06; Sigma: 3e-08
################################################################################
////////////////////////////////////////////////////////////////////////////////
Name: `for x in o.items()`;     Size:    5; Keys: str; Type:       dict; Time: 1.13e-07; Sigma: 3e-09
Name: `for x in o.items()`;     Size:    5; Keys: str; Type: frozendict; Time: 1.16e-07; Sigma: 2e-09
////////////////////////////////////////////////////////////////////////////////
Name: `for x in o.items()`;     Size:    5; Keys: int; Type:       dict; Time: 1.14e-07; Sigma: 3e-09
Name: `for x in o.items()`;     Size:    5; Keys: int; Type: frozendict; Time: 1.17e-07; Sigma: 2e-09
////////////////////////////////////////////////////////////////////////////////
Name: `for x in o.items()`;     Size: 1000; Keys: str; Type:       dict; Time: 1.53e-05; Sigma: 3e-07
Name: `for x in o.items()`;     Size: 1000; Keys: str; Type: frozendict; Time: 1.53e-05; Sigma: 4e-07
////////////////////////////////////////////////////////////////////////////////
Name: `for x in o.items()`;     Size: 1000; Keys: int; Type:       dict; Time: 1.53e-05; Sigma: 3e-07
Name: `for x in o.items()`;     Size: 1000; Keys: int; Type: frozendict; Time: 1.55e-05; Sigma: 4e-07
################################################################################
////////////////////////////////////////////////////////////////////////////////
Name: `pickle.dumps(o)`;        Size:    5; Keys: str; Type:       dict; Time: 6.82e-07; Sigma: 2e-08
Name: `pickle.dumps(o)`;        Size:    5; Keys: str; Type: frozendict; Time: 2.86e-06; Sigma: 1e-07
////////////////////////////////////////////////////////////////////////////////
Name: `pickle.dumps(o)`;        Size:    5; Keys: int; Type:       dict; Time: 4.77e-07; Sigma: 2e-08
Name: `pickle.dumps(o)`;        Size:    5; Keys: int; Type: frozendict; Time: 2.72e-06; Sigma: 8e-08
////////////////////////////////////////////////////////////////////////////////
Name: `pickle.dumps(o)`;        Size: 1000; Keys: str; Type:       dict; Time: 1.24e-04; Sigma: 4e-06
Name: `pickle.dumps(o)`;        Size: 1000; Keys: str; Type: frozendict; Time: 1.92e-04; Sigma: 5e-06
////////////////////////////////////////////////////////////////////////////////
Name: `pickle.dumps(o)`;        Size: 1000; Keys: int; Type:       dict; Time: 2.81e-05; Sigma: 6e-07
Name: `pickle.dumps(o)`;        Size: 1000; Keys: int; Type: frozendict; Time: 7.37e-05; Sigma: 1e-06
################################################################################
////////////////////////////////////////////////////////////////////////////////
Name: `pickle.loads(dump)`;     Size:    5; Keys: str; Type:       dict; Time: 9.08e-07; Sigma: 6e-09
Name: `pickle.loads(dump)`;     Size:    5; Keys: str; Type: frozendict; Time: 1.79e-06; Sigma: 9e-08
////////////////////////////////////////////////////////////////////////////////
Name: `pickle.loads(dump)`;     Size:    5; Keys: int; Type:       dict; Time: 4.46e-07; Sigma: 6e-09
Name: `pickle.loads(dump)`;     Size:    5; Keys: int; Type: frozendict; Time: 1.32e-06; Sigma: 7e-08
////////////////////////////////////////////////////////////////////////////////
Name: `pickle.loads(dump)`;     Size: 1000; Keys: str; Type:       dict; Time: 1.57e-04; Sigma: 8e-06
Name: `pickle.loads(dump)`;     Size: 1000; Keys: str; Type: frozendict; Time: 1.69e-04; Sigma: 7e-06
////////////////////////////////////////////////////////////////////////////////
Name: `pickle.loads(dump)`;     Size: 1000; Keys: int; Type:       dict; Time: 5.97e-05; Sigma: 5e-06
Name: `pickle.loads(dump)`;     Size: 1000; Keys: int; Type: frozendict; Time: 6.68e-05; Sigma: 2e-06
################################################################################
////////////////////////////////////////////////////////////////////////////////
Name: `class.fromkeys()`;       Size:    5; Keys: str; Type:       dict; Time: 1.88e-07; Sigma: 1e-09
Name: `class.fromkeys()`;       Size:    5; Keys: str; Type: frozendict; Time: 2.22e-07; Sigma: 7e-09
////////////////////////////////////////////////////////////////////////////////
Name: `class.fromkeys()`;       Size:    5; Keys: int; Type:       dict; Time: 2.08e-07; Sigma: 6e-09
Name: `class.fromkeys()`;       Size:    5; Keys: int; Type: frozendict; Time: 2.44e-07; Sigma: 2e-09
////////////////////////////////////////////////////////////////////////////////
Name: `class.fromkeys()`;       Size: 1000; Keys: str; Type:       dict; Time: 4.05e-05; Sigma: 4e-06
Name: `class.fromkeys()`;       Size: 1000; Keys: str; Type: frozendict; Time: 3.84e-05; Sigma: 5e-07
////////////////////////////////////////////////////////////////////////////////
Name: `class.fromkeys()`;       Size: 1000; Keys: int; Type:       dict; Time: 2.93e-05; Sigma: 7e-07
Name: `class.fromkeys()`;       Size: 1000; Keys: int; Type: frozendict; Time: 3.08e-05; Sigma: 2e-06
################################################################################

[1] Benchmarks done under Linux 64 bit, Python 3.10.2, using the C Extension.

Project details


Download files

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

Source Distribution

frozendict-2.4.6.tar.gz (316.4 kB view details)

Uploaded Source

Built Distributions

frozendict-2.4.6-py313-none-any.whl (16.1 kB view details)

Uploaded Python 3.13

frozendict-2.4.6-py312-none-any.whl (16.1 kB view details)

Uploaded Python 3.12

frozendict-2.4.6-py311-none-any.whl (16.1 kB view details)

Uploaded Python 3.11

frozendict-2.4.6-cp310-cp310-win_arm64.whl (34.1 kB view details)

Uploaded CPython 3.10 Windows ARM64

frozendict-2.4.6-cp310-cp310-win_amd64.whl (37.5 kB view details)

Uploaded CPython 3.10 Windows x86-64

frozendict-2.4.6-cp310-cp310-musllinux_1_2_x86_64.whl (117.3 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

frozendict-2.4.6-cp310-cp310-musllinux_1_2_aarch64.whl (116.8 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

frozendict-2.4.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (117.4 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

frozendict-2.4.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (117.7 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

frozendict-2.4.6-cp310-cp310-macosx_11_0_arm64.whl (37.9 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

frozendict-2.4.6-cp310-cp310-macosx_10_9_x86_64.whl (37.9 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

frozendict-2.4.6-cp39-cp39-win_arm64.whl (34.4 kB view details)

Uploaded CPython 3.9 Windows ARM64

frozendict-2.4.6-cp39-cp39-win_amd64.whl (37.8 kB view details)

Uploaded CPython 3.9 Windows x86-64

frozendict-2.4.6-cp39-cp39-musllinux_1_2_x86_64.whl (117.0 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

frozendict-2.4.6-cp39-cp39-musllinux_1_2_aarch64.whl (116.3 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARM64

frozendict-2.4.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (116.9 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

frozendict-2.4.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (117.1 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

frozendict-2.4.6-cp39-cp39-macosx_11_0_arm64.whl (38.0 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

frozendict-2.4.6-cp39-cp39-macosx_10_9_x86_64.whl (38.1 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

frozendict-2.4.6-cp38-cp38-win_amd64.whl (37.5 kB view details)

Uploaded CPython 3.8 Windows x86-64

frozendict-2.4.6-cp38-cp38-musllinux_1_2_x86_64.whl (115.5 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ x86-64

frozendict-2.4.6-cp38-cp38-musllinux_1_2_aarch64.whl (114.8 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ ARM64

frozendict-2.4.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (115.2 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

frozendict-2.4.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (115.3 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

frozendict-2.4.6-cp38-cp38-macosx_11_0_arm64.whl (37.6 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

frozendict-2.4.6-cp38-cp38-macosx_10_9_x86_64.whl (37.7 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

frozendict-2.4.6-cp37-cp37m-win_amd64.whl (37.4 kB view details)

Uploaded CPython 3.7m Windows x86-64

frozendict-2.4.6-cp37-cp37m-musllinux_1_2_x86_64.whl (102.8 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ x86-64

frozendict-2.4.6-cp37-cp37m-musllinux_1_2_aarch64.whl (102.6 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ ARM64

frozendict-2.4.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (103.8 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

frozendict-2.4.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (103.9 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

frozendict-2.4.6-cp37-cp37m-macosx_10_9_x86_64.whl (37.4 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

frozendict-2.4.6-cp36-cp36m-win_amd64.whl (39.2 kB view details)

Uploaded CPython 3.6m Windows x86-64

frozendict-2.4.6-cp36-cp36m-musllinux_1_2_x86_64.whl (101.0 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.2+ x86-64

frozendict-2.4.6-cp36-cp36m-musllinux_1_2_aarch64.whl (101.2 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.2+ ARM64

frozendict-2.4.6-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (101.9 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

frozendict-2.4.6-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (102.1 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ ARM64

frozendict-2.4.6-cp36-cp36m-macosx_10_9_x86_64.whl (37.2 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file frozendict-2.4.6.tar.gz.

File metadata

  • Download URL: frozendict-2.4.6.tar.gz
  • Upload date:
  • Size: 316.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.0

File hashes

Hashes for frozendict-2.4.6.tar.gz
Algorithm Hash digest
SHA256 df7cd16470fbd26fc4969a208efadc46319334eb97def1ddf48919b351192b8e
MD5 2b9a6bfdfa4de419e1f32dae6b51e54a
BLAKE2b-256 bb5919eb300ba28e7547538bdf603f1c6c34793240a90e1a7b61b65d8517e35e

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-py313-none-any.whl.

File metadata

  • Download URL: frozendict-2.4.6-py313-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3.13
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.0

File hashes

Hashes for frozendict-2.4.6-py313-none-any.whl
Algorithm Hash digest
SHA256 7134a2bb95d4a16556bb5f2b9736dceb6ea848fa5b6f3f6c2d6dba93b44b4757
MD5 5e514d190d14a7229656eec409931acb
BLAKE2b-256 a58eb6bf6a0de482d7d7d7a2aaac8fdc4a4d0bb24a809f5ddd422aa7060eb3d2

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-py312-none-any.whl.

File metadata

  • Download URL: frozendict-2.4.6-py312-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3.12
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.0

File hashes

Hashes for frozendict-2.4.6-py312-none-any.whl
Algorithm Hash digest
SHA256 49344abe90fb75f0f9fdefe6d4ef6d4894e640fadab71f11009d52ad97f370b9
MD5 56852ae4de44fcd4e8da8d4d99b58aed
BLAKE2b-256 bad0d482c39cee2ab2978a892558cf130681d4574ea208e162da8958b31e9250

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-py311-none-any.whl.

File metadata

  • Download URL: frozendict-2.4.6-py311-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3.11
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.0

File hashes

Hashes for frozendict-2.4.6-py311-none-any.whl
Algorithm Hash digest
SHA256 d065db6a44db2e2375c23eac816f1a022feb2fa98cbb50df44a9e83700accbea
MD5 88ceb812e4b4a3e78603836e324c720a
BLAKE2b-256 0413d9839089b900fa7b479cce495d62110cddc4bd5630a04d8469916c0e79c5

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 eabd21d8e5db0c58b60d26b4bb9839cac13132e88277e1376970172a85ee04b3
MD5 1a0ed0109a9a7146df3723d9803b2d14
BLAKE2b-256 4a6fc22e0266b4c85f58b4613fec024e040e93753880527bf92b0c1bc228c27c

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 323f1b674a2cc18f86ab81698e22aba8145d7a755e0ac2cccf142ee2db58620d
MD5 d38f8b5fe498bad0771861bf1efce7d2
BLAKE2b-256 d2dfbe3fa0457ff661301228f4c59c630699568c8ed9b5480f113b3eea7d0cb3

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c9905dcf7aa659e6a11b8051114c9fa76dfde3a6e50e6dc129d5aece75b449a2
MD5 f64aac5d2c6da2603c44ca2c4ed72b50
BLAKE2b-256 45aeaf06a8bde1947277aad895c2f26c3b8b8b6ee9c0c2ad988fb58a9d1dde3f

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9a8a43036754a941601635ea9c788ebd7a7efbed2becba01b54a887b41b175b9
MD5 35e7679d2c2616e5036f87452e936c59
BLAKE2b-256 62dd64bddd1ffa9617f50e7e63656b2a7ad7f0a46c86b5f4a3d2c714d0006277

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 da6a10164c8a50b34b9ab508a9420df38f4edf286b9ca7b7df8a91767baecb34
MD5 dce3364c5ece165231ba6832de4fd477
BLAKE2b-256 46a634c760975e6f1cb4db59a990d58dcf22287e10241c851804670c74c6a27a

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f4c789fd70879ccb6289a603cdebdc4953e7e5dea047d30c1b180529b28257b5
MD5 9358015dc1ccc8fccabbe91bc5fd84f8
BLAKE2b-256 acf1a10be024a9d53441c997b3661ea80ecba6e3130adc53812a4b95b607cdd1

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f5b94d5b07c00986f9e37a38dd83c13f5fe3bf3f1ccc8e88edea8fe15d6cd88c
MD5 e472504a68757ca283595dd01b9da451
BLAKE2b-256 299827e145ff7e8e63caa95fb8ee4fc56c68acb208bef01a89c3678a66f9a34d

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c3a05c0a50cab96b4bb0ea25aa752efbfceed5ccb24c007612bc63e51299336f
MD5 856452aa962c19bb5de999088dbab8d6
BLAKE2b-256 a67fe80cdbe0db930b2ba9d46ca35a41b0150156da16dfb79edcc05642690c3b

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp39-cp39-win_arm64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 7088102345d1606450bd1801a61139bbaa2cb0d805b9b692f8d81918ea835da6
MD5 b7f99dc39ca3717c148140e7d4dfedaa
BLAKE2b-256 8075cad77ff4bb58277a557becf837345de8f6384d3b1d71f932d22a13223b9e

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 74b6b26c15dddfefddeb89813e455b00ebf78d0a3662b89506b4d55c6445a9f4
MD5 944168c341e619fbf6febf6a36ba1c17
BLAKE2b-256 e16de99715f406d8f4297d08b5591365e7d91b39a24cdbaabd3861f95e283c52

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 94321e646cc39bebc66954a31edd1847d3a2a3483cf52ff051cd0996e7db07db
MD5 ee656ff49a6b5541d9e2790dfd7ac17f
BLAKE2b-256 41b940042606a4ac458046ebeecc34cec2971e78e029ea3b6ad4e35833c7f8e6

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b8f2829048f29fe115da4a60409be2130e69402e29029339663fac39c90e6e2b
MD5 1e0873701efa2b7756d99cb46c6ad2f4
BLAKE2b-256 22d4619d1cfbc74be5641d839a5a2e292f9eac494aa557bfe7c266542c4014a2

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0aaa11e7c472150efe65adbcd6c17ac0f586896096ab3963775e1c5c58ac0098
MD5 e30d2241e50f5c94b0058b3a348e72ab
BLAKE2b-256 41df09a752239eb0661eeda0f34f14577c10edc6f3e4deb7652b3a3efff22ad4

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 669237c571856be575eca28a69e92a3d18f8490511eff184937283dc6093bd67
MD5 0885e370457b29e6f3a65e130820bb56
BLAKE2b-256 b8a25a178339345edff643240e48dd276581df64b1dd93eaa7d26556396a145b

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ba5ef7328706db857a2bdb2c2a17b4cd37c32a19c017cff1bb7eeebc86b0f411
MD5 cadee2d6235151d141fb1033e9ad406b
BLAKE2b-256 93d03d66be6d154e2bbb4d49445c557f722b248c019b70982654e2440f303671

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a76cee5c4be2a5d1ff063188232fffcce05dde6fd5edd6afe7b75b247526490e
MD5 9bc7a2c792f1160fe16e04b9ee234a23
BLAKE2b-256 eb7e5d6e86b01742468e5265401529b60d4d24e4b61a751d24473a324da71b55

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 1b4a3f8f6dd51bee74a50995c39b5a606b612847862203dd5483b9cd91b0d36a
MD5 85ee70e3266bf6a4b04072704aedc607
BLAKE2b-256 979527b76d5019d3d5e02f2cad7dbc88647074379e170b168875007f2e9022df

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 18d50a2598350b89189da9150058191f55057581e40533e470db46c942373acf
MD5 7f2e0174221e07fd7f8e8381316bee05
BLAKE2b-256 4dc820048e682f11443303cee28cd4fe761f6f38ceddfce92db558496df5c4a8

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 02331541611f3897f260900a1815b63389654951126e6e65545e529b63c08361
MD5 1ee88cfa0af9d625bfa28bf9e0ef15c1
BLAKE2b-256 b964dc6f6e7cfb6a37c45bbccfc2805ec57700fad8a12f565323b2f6e5419cf8

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1f42e6b75254ea2afe428ad6d095b62f95a7ae6d4f8272f0bd44a25dddd20f67
MD5 44de87ad024206418a518cc1df624b3d
BLAKE2b-256 e2b95b850c5ae355829f855001966f573d1664ff0049fb6d974b9f4dfb406f92

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 665fad3f0f815aa41294e561d98dbedba4b483b3968e7e8cab7d728d64b96e33
MD5 4fb40f1b2784f779186de6cade563360
BLAKE2b-256 96f6b52a9d738e7d652f1b049592d97cb77a47e1b9bc63ba7a57c53a56ff69b5

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9647c74efe3d845faa666d4853cfeabbaee403b53270cabfc635b321f770e6b8
MD5 c8e3c9669c51fe2dc4c182a14cb16d6f
BLAKE2b-256 1dcccae210676924a52cae0ae1541b6991bbb4485b144b7be67f645626be7d61

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 807862e14b0e9665042458fde692c4431d660c4219b9bb240817f5b918182222
MD5 fb4d12e42d6de7080f7e72f29d102dd8
BLAKE2b-256 983ae33b94dcca772c32837584fc976d153e8128d5a981af769a741ff8bcb622

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 7730f8ebe791d147a1586cbf6a42629351d4597773317002181b66a2da0d509e
MD5 d566fddc84ad33ca0c870c4ce9d25053
BLAKE2b-256 1050dd2b445de87aad6ae345f905bfc59fd7276a6071ea6f66af34f8e9278dd9

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp37-cp37m-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp37-cp37m-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fc67cbb3c96af7a798fab53d52589752c1673027e516b702ab355510ddf6bdff
MD5 7ecc70bc405c6cf98b5fdf309807f0a1
BLAKE2b-256 b3696afbcc2e4d7157f792cd126a3b266aa2ee830d6492f494b6c77cd035bb33

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp37-cp37m-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp37-cp37m-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c131f10c4d3906866454c4e89b87a7e0027d533cce8f4652aa5255112c4d6677
MD5 85dbafaf05fb1f1832c4b8cc8dd29818
BLAKE2b-256 7d1f4788d4803e4cee66861df2a4244c42ba5e2edc94faa4ad71d915a53b833c

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2d69418479bfb834ba75b0e764f058af46ceee3d655deb6a0dd0c0c1a5e82f09
MD5 6a91295fde89878fa0ccfbbc7f3a19c4
BLAKE2b-256 291755b784e247322c782fdec40c658bf201322938dd715e7ed289dcc512cd18

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 49ffaf09241bc1417daa19362a2241a4aa435f758fd4375c39ce9790443a39cd
MD5 77618ed8800cb72c436715227d7470b4
BLAKE2b-256 1b13b20538f72b88221b597a10952a160861376b6c328c243326d43b63003c8f

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a4e3737cb99ed03200cd303bdcd5514c9f34b29ee48f405c1184141bd68611c9
MD5 26df2ddefe2bee9cba0f6db87e3ce3d8
BLAKE2b-256 fa128a21227459b3cff6ed44afd4e4556dc5d8d17fa1b5d7b7a10519a2c39c3b

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 622301b1c29c4f9bba633667d592a3a2b093cb408ba3ce578b8901ace3931ef3
MD5 d58b3a0b3b60fdce8a695fc6b9641557
BLAKE2b-256 2fe9fdc17d4704ec6f73aca508c8ea9f10462d4baf69c1b9aa1d3c2a9f1a6616

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp36-cp36m-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp36-cp36m-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e72fb86e48811957d66ffb3e95580af7b1af1e6fbd760ad63d7bd79b2c9a07f8
MD5 73bb0ab135b725865cbbdb5526b3c7a5
BLAKE2b-256 358d188de638697d5811f118e02b4c23270c77239e5eac949d8a79bc87bb90c8

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp36-cp36m-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp36-cp36m-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7291abacf51798d5ffe632771a69c14fb423ab98d63c4ccd1aa382619afe2f89
MD5 1d13376059247eda1534aff5eaa3d7b7
BLAKE2b-256 a7697a9da3e136aaa99010ab96bfdc11078408f40d0b1368948aea7925603726

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ce1e9217b85eec6ba9560d520d5089c82dbb15f977906eb345d81459723dd7e3
MD5 5e09f550e381ca22da3f93367c7c6434
BLAKE2b-256 61b99f998103c0c5079963e2954f5ed903c419bd29a4d4e7fdbce1c28ae8e7da

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 377a65be0a700188fc21e669c07de60f4f6d35fae8071c292b7df04776a1c27b
MD5 9148531832f7ac62fe2e340879622293
BLAKE2b-256 3789129e06fbf53c4d5f11f48a1f76d143135a2496d52c2470cc2112b0d13927

See more details on using hashes here.

File details

Details for the file frozendict-2.4.6-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for frozendict-2.4.6-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 eddabeb769fab1e122d3a6872982c78179b5bcc909fdc769f3cf1964f55a6d20
MD5 36f2a70684eb6a9c7cea147d304365de
BLAKE2b-256 f8a0c5418356ba9944f98257fb69ae3a1bf39beb0cd54a5c4d2f0b6e2601ca5a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page