• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

frozendict/H28-Nov-2021-138,67785,706

frozendict.egg-info/H03-May-2022-507465

test/H28-Nov-2021-1,063749

MANIFEST.inH A D25-Jun-202150 32

PKG-INFOH A D28-Nov-202136.1 KiB507465

README.mdH A D21-Nov-202135 KiB479440

setup.cfgH A D28-Nov-202138 53

setup.pyH A D18-Nov-20214.7 KiB174128

README.md

1# frozendict
2
3Welcome, fellow programmer!
4
5`frozendict` is a simple immutable dictionary. Unlike other similar
6implementations, immutability is guaranteed: you can't change the internal
7variables of the class, and they are all immutable objects.  Reinvoking
8`__init__` does not alter the object.
9
10The API is the same as `dict`, without methods that can change the immutability.
11So it supports also `fromkeys`, unlike other implementations. Furthermore it
12can be `pickle`d, un`pickle`d and have an hash, if all values are hashable.
13
14You can also add any `dict` to a `frozendict` using the `|` operator. The result is a new `frozendict`.
15
16Examples:
17
18```python
19from frozendict import frozendict
20
21fd = frozendict({"Sulla": "Marco", "Hicks": "Bill"})
22
23print(fd)
24# frozendict({'Sulla': 'Marco', 'Hicks': 'Bill'})
25
26print(fd["Sulla"])
27# Marco
28
29fd["God"]
30# KeyError: 'God'
31
32len(fd)
33# 2
34
35"Sulla" in fd
36# True
37
38"Sulla" not in fd
39# False
40
41"God" in fd
42# False
43
44hash(fd)
45# 5833699487320513741
46
47fd_unhashable = frozendict({1: []})
48hash(fd_unhashable)
49# TypeError: Not all values are hashable.
50
51fd | {1: 2}
52# frozendict({'Sulla': 'Marco', 'Hicks': 'Bill', 1: 2})
53
54fd5 = frozendict(fd)
55id_fd5 = id(fd5)
56fd5 |= {1: 2}
57fd5
58# frozendict.frozendict({'Sulla': 'Marco', 'Hicks': 'Bill', 1: 2})
59id(fd5) != id_fd5
60# True
61
62fd2 = fd.copy()
63fd2 == fd
64# True
65
66fd3 = frozendict(fd)
67fd3 == fd
68# True
69
70fd4 = frozendict({"Hicks": "Bill", "Sulla": "Marco"})
71
72print(fd4)
73# frozendict({'Hicks': 'Bill', 'Sulla': 'Marco'})
74
75fd4 == fd
76# True
77
78import pickle
79fd_unpickled = pickle.loads(pickle.dumps(fd))
80print(fd_unpickled)
81# frozendict({'Sulla': 'Marco', 'Hicks': 'Bill'})
82fd_unpickled == fd
83# True
84
85frozendict(Sulla="Marco", Hicks="Bill")
86# frozendict({'Sulla': 'Marco', 'Hicks': 'Bill'}
87
88frozendict((("Sulla", "Marco"), ("Hicks", "Bill")))
89# frozendict({'Sulla': 'Marco', 'Hicks': 'Bill'})
90
91fd.get("Sulla")
92# 'Marco'
93
94print(fd.get("God"))
95# None
96
97tuple(fd.keys())
98# ('Sulla', 'Hicks')
99
100tuple(fd.values())
101# ('Marco', 'Bill')
102
103tuple(fd.items())
104# (('Sulla', 'Marco'), ('Hicks', 'Bill'))
105
106frozendict.fromkeys(["Marco", "Giulia"], "Sulla")
107# frozendict({'Marco': 'Sulla', 'Giulia': 'Sulla'})
108
109iter(fd)
110# <dict_keyiterator object at 0x7feb75c49188>
111
112fd["Sulla"] = "Silla"
113# TypeError: 'frozendict' object doesn't support item assignment
114```
115
116# Benchmarks
117
118Some benchmarks between `dict` and `coold`, a C-only extended and experimental version of frozendict[1]:
119
120```
121################################################################################
122////////////////////////////////////////////////////////////////////////////////
123Name: `constructor(d)`;         Size:    5; Keys: str; Type:       dict; Time: 7.88e-08; Sigma: 5e-09
124Name: `constructor(d)`;         Size:    5; Keys: str; Type:      coold; Time: 2.99e-07; Sigma: 3e-09
125////////////////////////////////////////////////////////////////////////////////
126Name: `constructor(d)`;         Size:    5; Keys: int; Type:       dict; Time: 8.16e-08; Sigma: 4e-09
127Name: `constructor(d)`;         Size:    5; Keys: int; Type:      coold; Time: 3.12e-07; Sigma: 2e-09
128////////////////////////////////////////////////////////////////////////////////
129Name: `constructor(d)`;         Size: 1000; Keys: str; Type:       dict; Time: 5.90e-06; Sigma: 5e-07
130Name: `constructor(d)`;         Size: 1000; Keys: str; Type:      coold; Time: 5.22e-05; Sigma: 8e-07
131////////////////////////////////////////////////////////////////////////////////
132Name: `constructor(d)`;         Size: 1000; Keys: int; Type:       dict; Time: 3.44e-06; Sigma: 2e-07
133Name: `constructor(d)`;         Size: 1000; Keys: int; Type:      coold; Time: 4.05e-05; Sigma: 1e-06
134################################################################################
135////////////////////////////////////////////////////////////////////////////////
136Name: `constructor(kwargs)`;    Size:    5; Keys: str; Type:       dict; Time: 2.38e-07; Sigma: 2e-09
137Name: `constructor(kwargs)`;    Size:    5; Keys: str; Type:      coold; Time: 2.25e-07; Sigma: 1e-09
138////////////////////////////////////////////////////////////////////////////////
139Name: `constructor(kwargs)`;    Size: 1000; Keys: str; Type:       dict; Time: 4.67e-05; Sigma: 1e-06
140Name: `constructor(kwargs)`;    Size: 1000; Keys: str; Type:      coold; Time: 2.73e-05; Sigma: 6e-07
141################################################################################
142////////////////////////////////////////////////////////////////////////////////
143Name: `constructor(seq2)`;      Size:    5; Keys: str; Type:       dict; Time: 2.01e-07; Sigma: 2e-09
144Name: `constructor(seq2)`;      Size:    5; Keys: str; Type:      coold; Time: 2.44e-07; Sigma: 1e-09
145////////////////////////////////////////////////////////////////////////////////
146Name: `constructor(seq2)`;      Size:    5; Keys: int; Type:       dict; Time: 2.18e-07; Sigma: 3e-09
147Name: `constructor(seq2)`;      Size:    5; Keys: int; Type:      coold; Time: 2.59e-07; Sigma: 5e-09
148////////////////////////////////////////////////////////////////////////////////
149Name: `constructor(seq2)`;      Size: 1000; Keys: str; Type:       dict; Time: 4.22e-05; Sigma: 6e-07
150Name: `constructor(seq2)`;      Size: 1000; Keys: str; Type:      coold; Time: 4.20e-05; Sigma: 6e-07
151////////////////////////////////////////////////////////////////////////////////
152Name: `constructor(seq2)`;      Size: 1000; Keys: int; Type:       dict; Time: 2.98e-05; Sigma: 3e-07
153Name: `constructor(seq2)`;      Size: 1000; Keys: int; Type:      coold; Time: 3.08e-05; Sigma: 5e-07
154################################################################################
155////////////////////////////////////////////////////////////////////////////////
156Name: `constructor(o)`;         Size:    5; Keys: str; Type:       dict; Time: 7.88e-08; Sigma: 5e-09
157Name: `constructor(o)`;         Size:    5; Keys: str; Type:      coold; Time: 2.58e-08; Sigma: 2e-09
158////////////////////////////////////////////////////////////////////////////////
159Name: `constructor(o)`;         Size:    5; Keys: int; Type:       dict; Time: 8.35e-08; Sigma: 3e-09
160Name: `constructor(o)`;         Size:    5; Keys: int; Type:      coold; Time: 2.58e-08; Sigma: 2e-09
161////////////////////////////////////////////////////////////////////////////////
162Name: `constructor(o)`;         Size: 1000; Keys: str; Type:       dict; Time: 6.09e-06; Sigma: 2e-07
163Name: `constructor(o)`;         Size: 1000; Keys: str; Type:      coold; Time: 2.58e-08; Sigma: 2e-09
164////////////////////////////////////////////////////////////////////////////////
165Name: `constructor(o)`;         Size: 1000; Keys: int; Type:       dict; Time: 3.48e-06; Sigma: 2e-07
166Name: `constructor(o)`;         Size: 1000; Keys: int; Type:      coold; Time: 2.58e-08; Sigma: 2e-09
167################################################################################
168////////////////////////////////////////////////////////////////////////////////
169Name: `o.copy()`;               Size:    5; Keys: str; Type:       dict; Time: 7.08e-08; Sigma: 4e-09
170Name: `o.copy()`;               Size:    5; Keys: str; Type:      coold; Time: 3.35e-08; Sigma: 2e-09
171////////////////////////////////////////////////////////////////////////////////
172Name: `o.copy()`;               Size:    5; Keys: int; Type:       dict; Time: 7.18e-08; Sigma: 5e-09
173Name: `o.copy()`;               Size:    5; Keys: int; Type:      coold; Time: 3.35e-08; Sigma: 2e-09
174////////////////////////////////////////////////////////////////////////////////
175Name: `o.copy()`;               Size: 1000; Keys: str; Type:       dict; Time: 6.10e-06; Sigma: 2e-07
176Name: `o.copy()`;               Size: 1000; Keys: str; Type:      coold; Time: 3.35e-08; Sigma: 2e-09
177////////////////////////////////////////////////////////////////////////////////
178Name: `o.copy()`;               Size: 1000; Keys: int; Type:       dict; Time: 3.46e-06; Sigma: 2e-07
179Name: `o.copy()`;               Size: 1000; Keys: int; Type:      coold; Time: 3.35e-08; Sigma: 2e-09
180################################################################################
181////////////////////////////////////////////////////////////////////////////////
182Name: `o == o`;                 Size:    5; Keys: str; Type:       dict; Time: 7.21e-08; Sigma: 3e-10
183Name: `o == o`;                 Size:    5; Keys: str; Type:      coold; Time: 2.78e-08; Sigma: 1e-09
184////////////////////////////////////////////////////////////////////////////////
185Name: `o == o`;                 Size:    5; Keys: int; Type:       dict; Time: 7.27e-08; Sigma: 1e-09
186Name: `o == o`;                 Size:    5; Keys: int; Type:      coold; Time: 2.78e-08; Sigma: 1e-09
187////////////////////////////////////////////////////////////////////////////////
188Name: `o == o`;                 Size: 1000; Keys: str; Type:       dict; Time: 1.36e-05; Sigma: 2e-07
189Name: `o == o`;                 Size: 1000; Keys: str; Type:      coold; Time: 2.78e-08; Sigma: 1e-09
190////////////////////////////////////////////////////////////////////////////////
191Name: `o == o`;                 Size: 1000; Keys: int; Type:       dict; Time: 1.00e-05; Sigma: 7e-08
192Name: `o == o`;                 Size: 1000; Keys: int; Type:      coold; Time: 2.78e-08; Sigma: 9e-10
193################################################################################
194////////////////////////////////////////////////////////////////////////////////
195Name: `for x in o`;             Size:    5; Keys: str; Type:       dict; Time: 7.91e-08; Sigma: 1e-09
196Name: `for x in o`;             Size:    5; Keys: str; Type:      coold; Time: 7.08e-08; Sigma: 2e-09
197////////////////////////////////////////////////////////////////////////////////
198Name: `for x in o`;             Size:    5; Keys: int; Type:       dict; Time: 7.91e-08; Sigma: 1e-09
199Name: `for x in o`;             Size:    5; Keys: int; Type:      coold; Time: 7.08e-08; Sigma: 2e-09
200////////////////////////////////////////////////////////////////////////////////
201Name: `for x in o`;             Size: 1000; Keys: str; Type:       dict; Time: 9.82e-06; Sigma: 4e-08
202Name: `for x in o`;             Size: 1000; Keys: str; Type:      coold; Time: 8.10e-06; Sigma: 3e-08
203////////////////////////////////////////////////////////////////////////////////
204Name: `for x in o`;             Size: 1000; Keys: int; Type:       dict; Time: 9.79e-06; Sigma: 3e-08
205Name: `for x in o`;             Size: 1000; Keys: int; Type:      coold; Time: 8.07e-06; Sigma: 3e-08
206################################################################################
207////////////////////////////////////////////////////////////////////////////////
208Name: `for x in o.values()`;    Size:    5; Keys: str; Type:       dict; Time: 8.22e-08; Sigma: 1e-09
209Name: `for x in o.values()`;    Size:    5; Keys: str; Type:      coold; Time: 6.83e-08; Sigma: 1e-09
210////////////////////////////////////////////////////////////////////////////////
211Name: `for x in o.values()`;    Size:    5; Keys: int; Type:       dict; Time: 8.24e-08; Sigma: 1e-09
212Name: `for x in o.values()`;    Size:    5; Keys: int; Type:      coold; Time: 6.83e-08; Sigma: 1e-09
213////////////////////////////////////////////////////////////////////////////////
214Name: `for x in o.values()`;    Size: 1000; Keys: str; Type:       dict; Time: 1.07e-05; Sigma: 4e-08
215Name: `for x in o.values()`;    Size: 1000; Keys: str; Type:      coold; Time: 8.13e-06; Sigma: 3e-08
216////////////////////////////////////////////////////////////////////////////////
217Name: `for x in o.values()`;    Size: 1000; Keys: int; Type:       dict; Time: 1.07e-05; Sigma: 3e-08
218Name: `for x in o.values()`;    Size: 1000; Keys: int; Type:      coold; Time: 8.07e-06; Sigma: 2e-08
219################################################################################
220////////////////////////////////////////////////////////////////////////////////
221Name: `for x in o.items()`;     Size:    5; Keys: str; Type:       dict; Time: 1.19e-07; Sigma: 3e-09
222Name: `for x in o.items()`;     Size:    5; Keys: str; Type:      coold; Time: 1.20e-07; Sigma: 3e-09
223////////////////////////////////////////////////////////////////////////////////
224Name: `for x in o.items()`;     Size:    5; Keys: int; Type:       dict; Time: 1.21e-07; Sigma: 3e-09
225Name: `for x in o.items()`;     Size:    5; Keys: int; Type:      coold; Time: 1.21e-07; Sigma: 2e-09
226////////////////////////////////////////////////////////////////////////////////
227Name: `for x in o.items()`;     Size: 1000; Keys: str; Type:       dict; Time: 1.64e-05; Sigma: 4e-07
228Name: `for x in o.items()`;     Size: 1000; Keys: str; Type:      coold; Time: 1.64e-05; Sigma: 2e-07
229////////////////////////////////////////////////////////////////////////////////
230Name: `for x in o.items()`;     Size: 1000; Keys: int; Type:       dict; Time: 1.65e-05; Sigma: 4e-07
231Name: `for x in o.items()`;     Size: 1000; Keys: int; Type:      coold; Time: 1.65e-05; Sigma: 4e-07
232################################################################################
233////////////////////////////////////////////////////////////////////////////////
234Name: `pickle.dumps(o)`;        Size:    5; Keys: str; Type:       dict; Time: 6.50e-07; Sigma: 3e-08
235Name: `pickle.dumps(o)`;        Size:    5; Keys: str; Type:      coold; Time: 2.76e-06; Sigma: 7e-08
236////////////////////////////////////////////////////////////////////////////////
237Name: `pickle.dumps(o)`;        Size:    5; Keys: int; Type:       dict; Time: 4.59e-07; Sigma: 3e-08
238Name: `pickle.dumps(o)`;        Size:    5; Keys: int; Type:      coold; Time: 2.56e-06; Sigma: 1e-07
239////////////////////////////////////////////////////////////////////////////////
240Name: `pickle.dumps(o)`;        Size: 1000; Keys: str; Type:       dict; Time: 1.26e-04; Sigma: 2e-06
241Name: `pickle.dumps(o)`;        Size: 1000; Keys: str; Type:      coold; Time: 1.93e-04; Sigma: 3e-06
242////////////////////////////////////////////////////////////////////////////////
243Name: `pickle.dumps(o)`;        Size: 1000; Keys: int; Type:       dict; Time: 2.88e-05; Sigma: 5e-07
244Name: `pickle.dumps(o)`;        Size: 1000; Keys: int; Type:      coold; Time: 7.31e-05; Sigma: 1e-06
245################################################################################
246////////////////////////////////////////////////////////////////////////////////
247Name: `pickle.loads(dump)`;     Size:    5; Keys: str; Type:       dict; Time: 8.95e-07; Sigma: 2e-08
248Name: `pickle.loads(dump)`;     Size:    5; Keys: str; Type:      coold; Time: 2.07e-06; Sigma: 5e-08
249////////////////////////////////////////////////////////////////////////////////
250Name: `pickle.loads(dump)`;     Size:    5; Keys: int; Type:       dict; Time: 4.46e-07; Sigma: 1e-08
251Name: `pickle.loads(dump)`;     Size:    5; Keys: int; Type:      coold; Time: 1.62e-06; Sigma: 7e-08
252////////////////////////////////////////////////////////////////////////////////
253Name: `pickle.loads(dump)`;     Size: 1000; Keys: str; Type:       dict; Time: 1.56e-04; Sigma: 7e-06
254Name: `pickle.loads(dump)`;     Size: 1000; Keys: str; Type:      coold; Time: 2.21e-04; Sigma: 7e-06
255////////////////////////////////////////////////////////////////////////////////
256Name: `pickle.loads(dump)`;     Size: 1000; Keys: int; Type:       dict; Time: 5.61e-05; Sigma: 1e-06
257Name: `pickle.loads(dump)`;     Size: 1000; Keys: int; Type:      coold; Time: 1.00e-04; Sigma: 3e-06
258################################################################################
259////////////////////////////////////////////////////////////////////////////////
260Name: `class.fromkeys()`;       Size:    5; Keys: str; Type:       dict; Time: 1.84e-07; Sigma: 6e-09
261Name: `class.fromkeys()`;       Size:    5; Keys: str; Type:      coold; Time: 2.15e-07; Sigma: 9e-09
262////////////////////////////////////////////////////////////////////////////////
263Name: `class.fromkeys()`;       Size:    5; Keys: int; Type:       dict; Time: 2.10e-07; Sigma: 6e-09
264Name: `class.fromkeys()`;       Size:    5; Keys: int; Type:      coold; Time: 2.31e-07; Sigma: 6e-09
265////////////////////////////////////////////////////////////////////////////////
266Name: `class.fromkeys()`;       Size: 1000; Keys: str; Type:       dict; Time: 3.99e-05; Sigma: 7e-07
267Name: `class.fromkeys()`;       Size: 1000; Keys: str; Type:      coold; Time: 3.83e-05; Sigma: 5e-07
268////////////////////////////////////////////////////////////////////////////////
269Name: `class.fromkeys()`;       Size: 1000; Keys: int; Type:       dict; Time: 2.96e-05; Sigma: 5e-07
270Name: `class.fromkeys()`;       Size: 1000; Keys: int; Type:      coold; Time: 2.90e-05; Sigma: 4e-07
271################################################################################
272////////////////////////////////////////////////////////////////////////////////
273Name: `for x in o.keys()`;      Size:    5; Keys: str; Type:       dict; Time: 7.65e-08; Sigma: 1e-09
274Name: `for x in o.keys()`;      Size:    5; Keys: str; Type:      coold; Time: 6.91e-08; Sigma: 2e-09
275////////////////////////////////////////////////////////////////////////////////
276Name: `for x in o.keys()`;      Size:    5; Keys: int; Type:       dict; Time: 7.65e-08; Sigma: 1e-09
277Name: `for x in o.keys()`;      Size:    5; Keys: int; Type:      coold; Time: 6.86e-08; Sigma: 3e-09
278////////////////////////////////////////////////////////////////////////////////
279Name: `for x in o.keys()`;      Size: 1000; Keys: str; Type:       dict; Time: 9.81e-06; Sigma: 3e-08
280Name: `for x in o.keys()`;      Size: 1000; Keys: str; Type:      coold; Time: 8.09e-06; Sigma: 3e-08
281////////////////////////////////////////////////////////////////////////////////
282Name: `for x in o.keys()`;      Size: 1000; Keys: int; Type:       dict; Time: 9.81e-06; Sigma: 3e-08
283Name: `for x in o.keys()`;      Size: 1000; Keys: int; Type:      coold; Time: 8.07e-06; Sigma: 2e-08
284################################################################################
285////////////////////////////////////////////////////////////////////////////////
286Name: `for x in iter(o)`;       Size:    5; Keys: str; Type:       dict; Time: 1.00e-07; Sigma: 3e-09
287Name: `for x in iter(o)`;       Size:    5; Keys: str; Type:      coold; Time: 9.19e-08; Sigma: 3e-09
288////////////////////////////////////////////////////////////////////////////////
289Name: `for x in iter(o)`;       Size:    5; Keys: int; Type:       dict; Time: 1.00e-07; Sigma: 3e-09
290Name: `for x in iter(o)`;       Size:    5; Keys: int; Type:      coold; Time: 9.20e-08; Sigma: 3e-09
291////////////////////////////////////////////////////////////////////////////////
292Name: `for x in iter(o)`;       Size: 1000; Keys: str; Type:       dict; Time: 9.85e-06; Sigma: 3e-08
293Name: `for x in iter(o)`;       Size: 1000; Keys: str; Type:      coold; Time: 8.13e-06; Sigma: 4e-08
294////////////////////////////////////////////////////////////////////////////////
295Name: `for x in iter(o)`;       Size: 1000; Keys: int; Type:       dict; Time: 9.82e-06; Sigma: 4e-08
296Name: `for x in iter(o)`;       Size: 1000; Keys: int; Type:      coold; Time: 8.10e-06; Sigma: 3e-08
297################################################################################
298////////////////////////////////////////////////////////////////////////////////
299Name: `o == d`;                 Size:    5; Keys: str; Type:       dict; Time: 7.45e-08; Sigma: 6e-10
300Name: `o == d`;                 Size:    5; Keys: str; Type:      coold; Time: 7.96e-08; Sigma: 1e-09
301////////////////////////////////////////////////////////////////////////////////
302Name: `o == d`;                 Size:    5; Keys: int; Type:       dict; Time: 7.30e-08; Sigma: 8e-10
303Name: `o == d`;                 Size:    5; Keys: int; Type:      coold; Time: 8.90e-08; Sigma: 2e-09
304////////////////////////////////////////////////////////////////////////////////
305Name: `o == d`;                 Size: 1000; Keys: str; Type:       dict; Time: 1.37e-05; Sigma: 2e-07
306Name: `o == d`;                 Size: 1000; Keys: str; Type:      coold; Time: 1.58e-05; Sigma: 2e-07
307////////////////////////////////////////////////////////////////////////////////
308Name: `o == d`;                 Size: 1000; Keys: int; Type:       dict; Time: 1.01e-05; Sigma: 7e-08
309Name: `o == d`;                 Size: 1000; Keys: int; Type:      coold; Time: 1.20e-05; Sigma: 1e-07
310################################################################################
311////////////////////////////////////////////////////////////////////////////////
312Name: `o.get(key)`;             Size:    5; Keys: str; Type:       dict; Time: 2.95e-08; Sigma: 5e-09
313Name: `o.get(key)`;             Size:    5; Keys: str; Type:      coold; Time: 2.98e-08; Sigma: 4e-09
314////////////////////////////////////////////////////////////////////////////////
315Name: `o.get(key)`;             Size:    5; Keys: int; Type:       dict; Time: 2.89e-08; Sigma: 4e-09
316Name: `o.get(key)`;             Size:    5; Keys: int; Type:      coold; Time: 2.90e-08; Sigma: 5e-09
317////////////////////////////////////////////////////////////////////////////////
318Name: `o.get(key)`;             Size: 1000; Keys: str; Type:       dict; Time: 3.09e-08; Sigma: 3e-09
319Name: `o.get(key)`;             Size: 1000; Keys: str; Type:      coold; Time: 3.04e-08; Sigma: 3e-09
320////////////////////////////////////////////////////////////////////////////////
321Name: `o.get(key)`;             Size: 1000; Keys: int; Type:       dict; Time: 2.98e-08; Sigma: 4e-09
322Name: `o.get(key)`;             Size: 1000; Keys: int; Type:      coold; Time: 2.95e-08; Sigma: 4e-09
323################################################################################
324////////////////////////////////////////////////////////////////////////////////
325Name: `o[key]`;                 Size:    5; Keys: str; Type:       dict; Time: 2.81e-08; Sigma: 6e-10
326Name: `o[key]`;                 Size:    5; Keys: str; Type:      coold; Time: 2.81e-08; Sigma: 7e-10
327////////////////////////////////////////////////////////////////////////////////
328Name: `o[key]`;                 Size:    5; Keys: int; Type:       dict; Time: 2.97e-08; Sigma: 6e-10
329Name: `o[key]`;                 Size:    5; Keys: int; Type:      coold; Time: 3.03e-08; Sigma: 1e-09
330////////////////////////////////////////////////////////////////////////////////
331Name: `o[key]`;                 Size: 1000; Keys: str; Type:       dict; Time: 2.84e-08; Sigma: 6e-10
332Name: `o[key]`;                 Size: 1000; Keys: str; Type:      coold; Time: 2.75e-08; Sigma: 1e-09
333////////////////////////////////////////////////////////////////////////////////
334Name: `o[key]`;                 Size: 1000; Keys: int; Type:       dict; Time: 3.05e-08; Sigma: 8e-10
335Name: `o[key]`;                 Size: 1000; Keys: int; Type:      coold; Time: 3.07e-08; Sigma: 1e-09
336################################################################################
337////////////////////////////////////////////////////////////////////////////////
338Name: `key in o`;               Size:    5; Keys: str; Type:       dict; Time: 2.29e-08; Sigma: 4e-09
339Name: `key in o`;               Size:    5; Keys: str; Type:      coold; Time: 2.32e-08; Sigma: 4e-09
340////////////////////////////////////////////////////////////////////////////////
341Name: `key in o`;               Size:    5; Keys: int; Type:       dict; Time: 2.26e-08; Sigma: 5e-09
342Name: `key in o`;               Size:    5; Keys: int; Type:      coold; Time: 2.22e-08; Sigma: 5e-09
343////////////////////////////////////////////////////////////////////////////////
344Name: `key in o`;               Size: 1000; Keys: str; Type:       dict; Time: 2.44e-08; Sigma: 3e-09
345Name: `key in o`;               Size: 1000; Keys: str; Type:      coold; Time: 2.35e-08; Sigma: 3e-09
346////////////////////////////////////////////////////////////////////////////////
347Name: `key in o`;               Size: 1000; Keys: int; Type:       dict; Time: 2.38e-08; Sigma: 3e-09
348Name: `key in o`;               Size: 1000; Keys: int; Type:      coold; Time: 2.33e-08; Sigma: 3e-09
349################################################################################
350////////////////////////////////////////////////////////////////////////////////
351Name: `key not in o`;           Size:    5; Keys: str; Type:       dict; Time: 2.29e-08; Sigma: 4e-09
352Name: `key not in o`;           Size:    5; Keys: str; Type:      coold; Time: 2.32e-08; Sigma: 4e-09
353////////////////////////////////////////////////////////////////////////////////
354Name: `key not in o`;           Size:    5; Keys: int; Type:       dict; Time: 2.26e-08; Sigma: 5e-09
355Name: `key not in o`;           Size:    5; Keys: int; Type:      coold; Time: 2.23e-08; Sigma: 5e-09
356////////////////////////////////////////////////////////////////////////////////
357Name: `key not in o`;           Size: 1000; Keys: str; Type:       dict; Time: 2.44e-08; Sigma: 3e-09
358Name: `key not in o`;           Size: 1000; Keys: str; Type:      coold; Time: 2.38e-08; Sigma: 3e-09
359////////////////////////////////////////////////////////////////////////////////
360Name: `key not in o`;           Size: 1000; Keys: int; Type:       dict; Time: 2.38e-08; Sigma: 3e-09
361Name: `key not in o`;           Size: 1000; Keys: int; Type:      coold; Time: 2.35e-08; Sigma: 3e-09
362################################################################################
363////////////////////////////////////////////////////////////////////////////////
364Name: `hash(o)`;                Size:    5; Keys: str; Type:      coold; Time: 4.17e-08; Sigma: 1e-09
365////////////////////////////////////////////////////////////////////////////////
366Name: `hash(o)`;                Size:    5; Keys: int; Type:      coold; Time: 4.19e-08; Sigma: 1e-09
367////////////////////////////////////////////////////////////////////////////////
368Name: `hash(o)`;                Size: 1000; Keys: str; Type:      coold; Time: 4.15e-08; Sigma: 1e-09
369////////////////////////////////////////////////////////////////////////////////
370Name: `hash(o)`;                Size: 1000; Keys: int; Type:      coold; Time: 4.15e-08; Sigma: 2e-09
371################################################################################
372////////////////////////////////////////////////////////////////////////////////
373Name: `len(o)`;                 Size:    5; Keys: str; Type:       dict; Time: 3.21e-08; Sigma: 2e-09
374Name: `len(o)`;                 Size:    5; Keys: str; Type:      coold; Time: 3.21e-08; Sigma: 2e-09
375////////////////////////////////////////////////////////////////////////////////
376Name: `len(o)`;                 Size:    5; Keys: int; Type:       dict; Time: 3.21e-08; Sigma: 2e-09
377Name: `len(o)`;                 Size:    5; Keys: int; Type:      coold; Time: 3.21e-08; Sigma: 2e-09
378////////////////////////////////////////////////////////////////////////////////
379Name: `len(o)`;                 Size: 1000; Keys: str; Type:       dict; Time: 3.95e-08; Sigma: 2e-09
380Name: `len(o)`;                 Size: 1000; Keys: str; Type:      coold; Time: 3.95e-08; Sigma: 2e-09
381////////////////////////////////////////////////////////////////////////////////
382Name: `len(o)`;                 Size: 1000; Keys: int; Type:       dict; Time: 3.95e-08; Sigma: 2e-09
383Name: `len(o)`;                 Size: 1000; Keys: int; Type:      coold; Time: 3.95e-08; Sigma: 2e-09
384################################################################################
385////////////////////////////////////////////////////////////////////////////////
386Name: `o.keys()`;               Size:    5; Keys: str; Type:       dict; Time: 3.27e-08; Sigma: 2e-09
387Name: `o.keys()`;               Size:    5; Keys: str; Type:      coold; Time: 3.44e-08; Sigma: 2e-09
388////////////////////////////////////////////////////////////////////////////////
389Name: `o.keys()`;               Size:    5; Keys: int; Type:       dict; Time: 3.27e-08; Sigma: 2e-09
390Name: `o.keys()`;               Size:    5; Keys: int; Type:      coold; Time: 3.41e-08; Sigma: 2e-09
391////////////////////////////////////////////////////////////////////////////////
392Name: `o.keys()`;               Size: 1000; Keys: str; Type:       dict; Time: 3.26e-08; Sigma: 2e-09
393Name: `o.keys()`;               Size: 1000; Keys: str; Type:      coold; Time: 3.45e-08; Sigma: 2e-09
394////////////////////////////////////////////////////////////////////////////////
395Name: `o.keys()`;               Size: 1000; Keys: int; Type:       dict; Time: 3.27e-08; Sigma: 2e-09
396Name: `o.keys()`;               Size: 1000; Keys: int; Type:      coold; Time: 3.41e-08; Sigma: 2e-09
397################################################################################
398////////////////////////////////////////////////////////////////////////////////
399Name: `o.values()`;             Size:    5; Keys: str; Type:       dict; Time: 3.23e-08; Sigma: 2e-09
400Name: `o.values()`;             Size:    5; Keys: str; Type:      coold; Time: 3.44e-08; Sigma: 2e-09
401////////////////////////////////////////////////////////////////////////////////
402Name: `o.values()`;             Size:    5; Keys: int; Type:       dict; Time: 3.23e-08; Sigma: 2e-09
403Name: `o.values()`;             Size:    5; Keys: int; Type:      coold; Time: 3.44e-08; Sigma: 2e-09
404////////////////////////////////////////////////////////////////////////////////
405Name: `o.values()`;             Size: 1000; Keys: str; Type:       dict; Time: 3.24e-08; Sigma: 2e-09
406Name: `o.values()`;             Size: 1000; Keys: str; Type:      coold; Time: 3.44e-08; Sigma: 2e-09
407////////////////////////////////////////////////////////////////////////////////
408Name: `o.values()`;             Size: 1000; Keys: int; Type:       dict; Time: 3.23e-08; Sigma: 2e-09
409Name: `o.values()`;             Size: 1000; Keys: int; Type:      coold; Time: 3.44e-08; Sigma: 2e-09
410################################################################################
411////////////////////////////////////////////////////////////////////////////////
412Name: `o.items()`;              Size:    5; Keys: str; Type:       dict; Time: 3.22e-08; Sigma: 2e-09
413Name: `o.items()`;              Size:    5; Keys: str; Type:      coold; Time: 3.50e-08; Sigma: 2e-09
414////////////////////////////////////////////////////////////////////////////////
415Name: `o.items()`;              Size:    5; Keys: int; Type:       dict; Time: 3.18e-08; Sigma: 3e-09
416Name: `o.items()`;              Size:    5; Keys: int; Type:      coold; Time: 3.50e-08; Sigma: 2e-09
417////////////////////////////////////////////////////////////////////////////////
418Name: `o.items()`;              Size: 1000; Keys: str; Type:       dict; Time: 3.24e-08; Sigma: 2e-09
419Name: `o.items()`;              Size: 1000; Keys: str; Type:      coold; Time: 3.48e-08; Sigma: 2e-09
420////////////////////////////////////////////////////////////////////////////////
421Name: `o.items()`;              Size: 1000; Keys: int; Type:       dict; Time: 3.24e-08; Sigma: 2e-09
422Name: `o.items()`;              Size: 1000; Keys: int; Type:      coold; Time: 3.50e-08; Sigma: 2e-09
423################################################################################
424////////////////////////////////////////////////////////////////////////////////
425Name: `iter(o)`;                Size:    5; Keys: str; Type:       dict; Time: 4.44e-08; Sigma: 2e-09
426Name: `iter(o)`;                Size:    5; Keys: str; Type:      coold; Time: 4.69e-08; Sigma: 1e-09
427////////////////////////////////////////////////////////////////////////////////
428Name: `iter(o)`;                Size:    5; Keys: int; Type:       dict; Time: 4.44e-08; Sigma: 2e-09
429Name: `iter(o)`;                Size:    5; Keys: int; Type:      coold; Time: 4.67e-08; Sigma: 2e-09
430////////////////////////////////////////////////////////////////////////////////
431Name: `iter(o)`;                Size: 1000; Keys: str; Type:       dict; Time: 4.44e-08; Sigma: 2e-09
432Name: `iter(o)`;                Size: 1000; Keys: str; Type:      coold; Time: 4.70e-08; Sigma: 1e-09
433////////////////////////////////////////////////////////////////////////////////
434Name: `iter(o)`;                Size: 1000; Keys: int; Type:       dict; Time: 4.44e-08; Sigma: 2e-09
435Name: `iter(o)`;                Size: 1000; Keys: int; Type:      coold; Time: 4.70e-08; Sigma: 1e-09
436################################################################################
437////////////////////////////////////////////////////////////////////////////////
438Name: `repr(o)`;                Size:    5; Keys: str; Type:       dict; Time: 1.83e-06; Sigma: 4e-08
439Name: `repr(o)`;                Size:    5; Keys: str; Type:      coold; Time: 2.14e-06; Sigma: 8e-08
440////////////////////////////////////////////////////////////////////////////////
441Name: `repr(o)`;                Size:    5; Keys: int; Type:       dict; Time: 7.60e-07; Sigma: 7e-09
442Name: `repr(o)`;                Size:    5; Keys: int; Type:      coold; Time: 9.24e-07; Sigma: 1e-08
443////////////////////////////////////////////////////////////////////////////////
444Name: `repr(o)`;                Size: 1000; Keys: str; Type:       dict; Time: 2.71e-04; Sigma: 5e-06
445Name: `repr(o)`;                Size: 1000; Keys: str; Type:      coold; Time: 2.90e-04; Sigma: 2e-05
446////////////////////////////////////////////////////////////////////////////////
447Name: `repr(o)`;                Size: 1000; Keys: int; Type:       dict; Time: 1.22e-04; Sigma: 1e-06
448Name: `repr(o)`;                Size: 1000; Keys: int; Type:      coold; Time: 1.23e-04; Sigma: 5e-06
449################################################################################
450////////////////////////////////////////////////////////////////////////////////
451Name: `str(o)`;                 Size:    5; Keys: str; Type:       dict; Time: 1.86e-06; Sigma: 5e-08
452Name: `str(o)`;                 Size:    5; Keys: str; Type:      coold; Time: 2.17e-06; Sigma: 7e-08
453////////////////////////////////////////////////////////////////////////////////
454Name: `str(o)`;                 Size:    5; Keys: int; Type:       dict; Time: 7.93e-07; Sigma: 5e-09
455Name: `str(o)`;                 Size:    5; Keys: int; Type:      coold; Time: 9.51e-07; Sigma: 2e-08
456////////////////////////////////////////////////////////////////////////////////
457Name: `str(o)`;                 Size: 1000; Keys: str; Type:       dict; Time: 2.73e-04; Sigma: 5e-06
458Name: `str(o)`;                 Size: 1000; Keys: str; Type:      coold; Time: 2.88e-04; Sigma: 3e-05
459////////////////////////////////////////////////////////////////////////////////
460Name: `str(o)`;                 Size: 1000; Keys: int; Type:       dict; Time: 1.22e-04; Sigma: 1e-06
461Name: `str(o)`;                 Size: 1000; Keys: int; Type:      coold; Time: 1.23e-04; Sigma: 5e-06
462################################################################################
463////////////////////////////////////////////////////////////////////////////////
464Name: `set`;                    Size:    5; Keys: str; Type:       dict; Time: 3.50e-08; Sigma: 2e-09
465Name: `set`;                    Size:    5; Keys: str; Type:      coold; Time: 1.26e-07; Sigma: 8e-10
466////////////////////////////////////////////////////////////////////////////////
467Name: `set`;                    Size:    5; Keys: int; Type:       dict; Time: 3.61e-08; Sigma: 2e-09
468Name: `set`;                    Size:    5; Keys: int; Type:      coold; Time: 1.28e-07; Sigma: 8e-10
469////////////////////////////////////////////////////////////////////////////////
470Name: `set`;                    Size: 1000; Keys: str; Type:       dict; Time: 3.53e-08; Sigma: 2e-09
471Name: `set`;                    Size: 1000; Keys: str; Type:      coold; Time: 6.20e-06; Sigma: 5e-07
472////////////////////////////////////////////////////////////////////////////////
473Name: `set`;                    Size: 1000; Keys: int; Type:       dict; Time: 3.70e-08; Sigma: 2e-09
474Name: `set`;                    Size: 1000; Keys: int; Type:      coold; Time: 3.61e-06; Sigma: 2e-07
475################################################################################
476```
477
478[1] Benchmarks done under Linux 64 bit, Python 3.10, using the C Extension.
479