diff options
| author | Daniyal Abbasi <abbasi.daniyal98@gmail.com> | 2021-09-02 11:15:40 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-09-02 11:24:55 +0200 |
| commit | dca4c2ff764ab94848274952eee4319a638be1d2 (patch) | |
| tree | 83d32e92a738a32dfc9bb9b8e947eb12d65872e6 /django | |
| parent | 50ed545e2fa02c51e0d1559b83624f256e4b499b (diff) | |
Refs #33012 -- Moved PickleSerializer to django.core.serializers.base and added tests.
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/sessions/serializers.py | 21 | ||||
| -rw-r--r-- | django/core/serializers/base.py | 16 |
2 files changed, 20 insertions, 17 deletions
diff --git a/django/contrib/sessions/serializers.py b/django/contrib/sessions/serializers.py index 6ac4aab6a4..5b6c343daa 100644 --- a/django/contrib/sessions/serializers.py +++ b/django/contrib/sessions/serializers.py @@ -1,20 +1,7 @@ -import pickle - +from django.core.serializers.base import ( + PickleSerializer as BasePickleSerializer, +) from django.core.signing import JSONSerializer as BaseJSONSerializer - -class PickleSerializer: - """ - Simple wrapper around pickle to be used in signing.dumps and - signing.loads. - """ - protocol = pickle.HIGHEST_PROTOCOL - - def dumps(self, obj): - return pickle.dumps(obj, self.protocol) - - def loads(self, data): - return pickle.loads(data) - - JSONSerializer = BaseJSONSerializer +PickleSerializer = BasePickleSerializer diff --git a/django/core/serializers/base.py b/django/core/serializers/base.py index 3fee7893df..3bd492ec09 100644 --- a/django/core/serializers/base.py +++ b/django/core/serializers/base.py @@ -1,6 +1,7 @@ """ Module for abstract serializer/unserializer base classes. """ +import pickle from io import StringIO from django.core.exceptions import ObjectDoesNotExist @@ -9,6 +10,21 @@ from django.db import models DEFER_FIELD = object() +class PickleSerializer: + """ + Simple wrapper around pickle to be used in signing.dumps()/loads() and + cache backends. + """ + def __init__(self, protocol=None): + self.protocol = pickle.HIGHEST_PROTOCOL if protocol is None else protocol + + def dumps(self, obj): + return pickle.dumps(obj, self.protocol) + + def loads(self, data): + return pickle.loads(data) + + class SerializerDoesNotExist(KeyError): """The requested serializer was not found.""" pass |
