MCPcopy Index your code
hub / github.com/python/cpython / compact_set

Function compact_set

Tools/unicode/mkstringprep.py:14–46  ·  view source on GitHub ↗
(l)

Source from the content-addressed store, hash-verified

12 yield(i)
13
14def compact_set(l):
15 single = []
16 tuple = []
17 prev = None
18 span = 0
19 for e in l:
20 if prev is None:
21 prev = e
22 span = 0
23 continue
24 if prev+span+1 != e:
25 if span > 2:
26 tuple.append((prev,prev+span+1))
27 else:
28 for i in range(prev, prev+span+1):
29 single.append(i)
30 prev = e
31 span = 0
32 else:
33 span += 1
34 if span:
35 tuple.append((prev,prev+span+1))
36 else:
37 single.append(prev)
38 if not single and len(tuple) == 1:
39 tuple = "range(%d,%d)" % tuple[0]
40 else:
41 tuple = " + ".join("list(range(%d,%d))" % t for t in tuple)
42 if not single:
43 return "set(%s)" % tuple
44 if not tuple:
45 return "set(%r)" % (single,)
46 return "set(%r + %s)" % (single, tuple)
47
48############## Read the tables in the RFC #######################
49

Callers 1

mkstringprep.pyFile · 0.85

Calls 2

appendMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…