| 126 | # e.restore() |
| 127 | |
| 128 | class ExtensionSaver: |
| 129 | # Remember current registration for code (if any), and remove it (if |
| 130 | # there is one). |
| 131 | def __init__(self, code): |
| 132 | self.code = code |
| 133 | if code in copyreg._inverted_registry: |
| 134 | self.pair = copyreg._inverted_registry[code] |
| 135 | copyreg.remove_extension(self.pair[0], self.pair[1], code) |
| 136 | else: |
| 137 | self.pair = None |
| 138 | |
| 139 | # Restore previous registration for code. |
| 140 | def restore(self): |
| 141 | code = self.code |
| 142 | curpair = copyreg._inverted_registry.get(code) |
| 143 | if curpair is not None: |
| 144 | copyreg.remove_extension(curpair[0], curpair[1], code) |
| 145 | pair = self.pair |
| 146 | if pair is not None: |
| 147 | copyreg.add_extension(pair[0], pair[1], code) |
| 148 | |
| 149 | class pickling_metaclass(type): |
| 150 | def __eq__(self, other): |
no outgoing calls
searching dependent graphs…