Move YAML code to its own module

Code now resides in common.serialization in the form
of two new functions: yaml_load and yaml_dump.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-07-10 19:35:42 -04:00
parent 3621af7e7d
commit 8bc4b6a95e
18 changed files with 88 additions and 148 deletions

View File

@@ -9,11 +9,6 @@ import sys
import yaml
try:
from yaml import CSafeLoader as SafeLoader, CSafeDumper as SafeDumper
except ImportError:
from yaml import SafeLoader, SafeDumper
from django.apps import apps
from django.conf import settings
from django.utils.functional import Promise
@@ -21,6 +16,8 @@ from django.utils.encoding import (
force_bytes, force_text, python_2_unicode_compatible
)
from mayan.apps.common.serialization import yaml_dump, yaml_load
logger = logging.getLogger(__name__)
@@ -85,7 +82,7 @@ class Setting(object):
@staticmethod
def deserialize_value(value):
return yaml.load(stream=value, Loader=SafeLoader)
return yaml_load(stream=value)
@staticmethod
def express_promises(value):
@@ -101,9 +98,8 @@ class Setting(object):
@staticmethod
def serialize_value(value):
result = yaml.dump(
result = yaml_dump(
data=Setting.express_promises(value), allow_unicode=True,
Dumper=SafeDumper
)
# safe_dump returns bytestrings
# Disregard the last 3 dots that mark the end of the YAML document
@@ -128,8 +124,8 @@ class Setting(object):
if (filter_term and filter_term.lower() in setting.global_name.lower()) or not filter_term:
dictionary[setting.global_name] = Setting.express_promises(setting.value)
return yaml.dump(
data=dictionary, default_flow_style=False, Dumper=SafeDumper
return yaml_dump(
data=dictionary, default_flow_style=False
)
@classmethod