0001-python3-encode-pickle-cached-data-31174.patch
src/authentic2/decorators.py | ||
---|---|---|
1 |
import base64 |
|
1 | 2 |
import pickle |
2 | 3 |
import re |
3 | 4 |
from json import dumps as json_dumps |
... | ... | |
224 | 225 |
class PickleCacheMixin(object): |
225 | 226 |
def set(self, key, value): |
226 | 227 |
value, tstamp = value |
227 |
value = pickle.dumps(value)
|
|
228 |
value = base64.b64encode(pickle.dumps(value)).decode('ascii')
|
|
228 | 229 |
super(PickleCacheMixin, self).set(key, (value, tstamp)) |
229 | 230 | |
230 | 231 |
def get(self, key): |
231 | 232 |
value = super(PickleCacheMixin, self).get(key) |
232 | 233 |
if value[0] is not None: |
233 |
value = (pickle.loads(value[0]), value[1]) |
|
234 |
value, tstamp = value |
|
235 |
try: |
|
236 |
value = base64.b64decode(value.encode('ascii')) |
|
237 |
except ValueError: |
|
238 |
pass |
|
239 |
value = (pickle.loads(value), tstamp) |
|
234 | 240 |
return value |
235 | 241 | |
236 | 242 | |
237 |
- |