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

Function assure_pickle_consistency

Lib/pickletools.py:2224–2260  ·  view source on GitHub ↗
(verbose=False)

Source from the content-addressed store, hash-verified

2222del d
2223
2224def assure_pickle_consistency(verbose=False):
2225
2226 copy = code2op.copy()
2227 for name in pickle.__all__:
2228 if not re.match("[A-Z][A-Z0-9_]+$", name):
2229 if verbose:
2230 print("skipping %r: it doesn't look like an opcode name" % name)
2231 continue
2232 picklecode = getattr(pickle, name)
2233 if not isinstance(picklecode, bytes) or len(picklecode) != 1:
2234 if verbose:
2235 print(("skipping %r: value %r doesn't look like a pickle "
2236 "code" % (name, picklecode)))
2237 continue
2238 picklecode = picklecode.decode("latin-1")
2239 if picklecode in copy:
2240 if verbose:
2241 print("checking name %r w/ code %r for consistency" % (
2242 name, picklecode))
2243 d = copy[picklecode]
2244 if d.name != name:
2245 raise ValueError("for pickle code %r, pickle.py uses name %r "
2246 "but we're using name %r" % (picklecode,
2247 name,
2248 d.name))
2249 # Forget this one. Any left over in copy at the end are a problem
2250 # of a different kind.
2251 del copy[picklecode]
2252 else:
2253 raise ValueError("pickle.py appears to have a pickle opcode with "
2254 "name %r and code %r, but we don't" %
2255 (name, picklecode))
2256 if copy:
2257 msg = ["we appear to have pickle opcodes that pickle.py doesn't have:"]
2258 for code, d in copy.items():
2259 msg.append(" name %r with code %r" % (d.name, code))
2260 raise ValueError("\n".join(msg))
2261
2262assure_pickle_consistency()
2263del assure_pickle_consistency

Callers 1

pickletools.pyFile · 0.85

Calls 6

copyMethod · 0.45
matchMethod · 0.45
decodeMethod · 0.45
itemsMethod · 0.45
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…