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:
22
mayan/apps/common/serialization.py
Normal file
22
mayan/apps/common/serialization.py
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
try:
|
||||||
|
from yaml import CSafeLoader as SafeLoader, CSafeDumper as SafeDumper
|
||||||
|
except ImportError:
|
||||||
|
from yaml import SafeLoader, SafeDumper
|
||||||
|
|
||||||
|
|
||||||
|
def yaml_dump(*args, **kwargs):
|
||||||
|
defaults = {'Dumper': SafeDumper}
|
||||||
|
defaults.update(kwargs)
|
||||||
|
|
||||||
|
return yaml.dump(*args, **defaults)
|
||||||
|
|
||||||
|
|
||||||
|
def yaml_load(*args, **kwargs):
|
||||||
|
defaults = {'Loader': SafeLoader}
|
||||||
|
defaults.update(kwargs)
|
||||||
|
|
||||||
|
return yaml.load(*args, **defaults)
|
||||||
@@ -1,14 +1,9 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import yaml
|
|
||||||
|
|
||||||
try:
|
|
||||||
from yaml import CSafeLoader as SafeLoader
|
|
||||||
except ImportError:
|
|
||||||
from yaml import SafeLoader
|
|
||||||
|
|
||||||
from django.utils.module_loading import import_string
|
from django.utils.module_loading import import_string
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_load
|
||||||
|
|
||||||
from .settings import (
|
from .settings import (
|
||||||
setting_shared_storage, setting_shared_storage_arguments
|
setting_shared_storage, setting_shared_storage_arguments
|
||||||
)
|
)
|
||||||
@@ -16,8 +11,7 @@ from .settings import (
|
|||||||
storage_sharedupload = import_string(
|
storage_sharedupload = import_string(
|
||||||
dotted_path=setting_shared_storage.value
|
dotted_path=setting_shared_storage.value
|
||||||
)(
|
)(
|
||||||
**yaml.load(
|
**yaml_load(
|
||||||
stream=setting_shared_storage_arguments.value or '{}',
|
stream=setting_shared_storage_arguments.value or '{}',
|
||||||
Loader=SafeLoader
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -7,15 +7,12 @@ import shutil
|
|||||||
from PIL import Image
|
from PIL import Image
|
||||||
import PyPDF2
|
import PyPDF2
|
||||||
import sh
|
import sh
|
||||||
import yaml
|
|
||||||
try:
|
|
||||||
from yaml import CSafeLoader as SafeLoader
|
|
||||||
except ImportError:
|
|
||||||
from yaml import SafeLoader
|
|
||||||
|
|
||||||
from django.utils.encoding import force_text
|
from django.utils.encoding import force_text
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_load
|
||||||
from mayan.apps.storage.utils import NamedTemporaryFile
|
from mayan.apps.storage.utils import NamedTemporaryFile
|
||||||
|
|
||||||
from ..classes import ConverterBase
|
from ..classes import ConverterBase
|
||||||
@@ -27,8 +24,8 @@ from ..literals import (
|
|||||||
DEFAULT_PDFINFO_PATH
|
DEFAULT_PDFINFO_PATH
|
||||||
)
|
)
|
||||||
|
|
||||||
pdftoppm_path = yaml.load(
|
pdftoppm_path = yaml_load(
|
||||||
stream=setting_graphics_backend_config.value, Loader=SafeLoader
|
stream=setting_graphics_backend_config.value
|
||||||
).get(
|
).get(
|
||||||
'pdftoppm_path', DEFAULT_PDFTOPPM_PATH
|
'pdftoppm_path', DEFAULT_PDFTOPPM_PATH
|
||||||
)
|
)
|
||||||
@@ -39,16 +36,16 @@ except sh.CommandNotFound:
|
|||||||
pdftoppm = None
|
pdftoppm = None
|
||||||
else:
|
else:
|
||||||
pdftoppm_format = '-{}'.format(
|
pdftoppm_format = '-{}'.format(
|
||||||
yaml.load(
|
yaml_load(
|
||||||
stream=setting_graphics_backend_config.value, Loader=SafeLoader
|
stream=setting_graphics_backend_config.value
|
||||||
).get(
|
).get(
|
||||||
'pdftoppm_format', DEFAULT_PDFTOPPM_FORMAT
|
'pdftoppm_format', DEFAULT_PDFTOPPM_FORMAT
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
pdftoppm_dpi = format(
|
pdftoppm_dpi = format(
|
||||||
yaml.load(
|
yaml_load(
|
||||||
stream=setting_graphics_backend_config.value, Loader=SafeLoader
|
stream=setting_graphics_backend_config.value
|
||||||
).get(
|
).get(
|
||||||
'pdftoppm_dpi', DEFAULT_PDFTOPPM_DPI
|
'pdftoppm_dpi', DEFAULT_PDFTOPPM_DPI
|
||||||
)
|
)
|
||||||
@@ -56,8 +53,8 @@ else:
|
|||||||
|
|
||||||
pdftoppm = pdftoppm.bake(pdftoppm_format, '-r', pdftoppm_dpi)
|
pdftoppm = pdftoppm.bake(pdftoppm_format, '-r', pdftoppm_dpi)
|
||||||
|
|
||||||
pdfinfo_path = yaml.load(
|
pdfinfo_path = yaml_load(
|
||||||
stream=setting_graphics_backend_config.value, Loader=SafeLoader
|
stream=setting_graphics_backend_config.value
|
||||||
).get(
|
).get(
|
||||||
'pdfinfo_path', DEFAULT_PDFINFO_PATH
|
'pdfinfo_path', DEFAULT_PDFINFO_PATH
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -7,15 +7,10 @@ import shutil
|
|||||||
|
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
import sh
|
import sh
|
||||||
import yaml
|
|
||||||
|
|
||||||
try:
|
|
||||||
from yaml import CSafeLoader as SafeLoader
|
|
||||||
except ImportError:
|
|
||||||
from yaml import SafeLoader
|
|
||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_load
|
||||||
from mayan.apps.mimetype.api import get_mimetype
|
from mayan.apps.mimetype.api import get_mimetype
|
||||||
from mayan.apps.storage.settings import setting_temporary_directory
|
from mayan.apps.storage.settings import setting_temporary_directory
|
||||||
from mayan.apps.storage.utils import (
|
from mayan.apps.storage.utils import (
|
||||||
@@ -30,8 +25,8 @@ from .literals import (
|
|||||||
from .settings import setting_graphics_backend_config
|
from .settings import setting_graphics_backend_config
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
BACKEND_CONFIG = yaml.load(
|
BACKEND_CONFIG = yaml_load(
|
||||||
stream=setting_graphics_backend_config.value, Loader=SafeLoader
|
stream=setting_graphics_backend_config.value
|
||||||
)
|
)
|
||||||
libreoffice_path = BACKEND_CONFIG.get(
|
libreoffice_path = BACKEND_CONFIG.get(
|
||||||
'libreoffice_path', DEFAULT_LIBREOFFICE_PATH
|
'libreoffice_path', DEFAULT_LIBREOFFICE_PATH
|
||||||
@@ -62,8 +57,8 @@ class ConverterBase(object):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
def get_page(self, output_format=None):
|
def get_page(self, output_format=None):
|
||||||
output_format = output_format or yaml.load(
|
output_format = output_format or yaml_load(
|
||||||
stream=setting_graphics_backend_config.value, Loader=SafeLoader
|
stream=setting_graphics_backend_config.value
|
||||||
).get(
|
).get(
|
||||||
'pillow_format', DEFAULT_PILLOW_FORMAT
|
'pillow_format', DEFAULT_PILLOW_FORMAT
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -2,15 +2,12 @@ from __future__ import unicode_literals
|
|||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
try:
|
|
||||||
from yaml import CSafeLoader as SafeLoader
|
|
||||||
except ImportError:
|
|
||||||
from yaml import SafeLoader
|
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_load
|
||||||
|
|
||||||
from .models import Transformation
|
from .models import Transformation
|
||||||
|
|
||||||
|
|
||||||
@@ -21,7 +18,7 @@ class TransformationForm(forms.ModelForm):
|
|||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
try:
|
try:
|
||||||
yaml.load(stream=self.cleaned_data['arguments'], Loader=SafeLoader)
|
yaml_load(stream=self.cleaned_data['arguments'])
|
||||||
except yaml.YAMLError:
|
except yaml.YAMLError:
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
_(
|
_(
|
||||||
|
|||||||
@@ -2,16 +2,11 @@ from __future__ import unicode_literals
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import yaml
|
|
||||||
|
|
||||||
try:
|
|
||||||
from yaml import CSafeLoader as SafeLoader, CSafeDumper as SafeDumper
|
|
||||||
except ImportError:
|
|
||||||
from yaml import SafeLoader, SafeDumper
|
|
||||||
|
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.db import models, transaction
|
from django.db import models, transaction
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_dump, yaml_load
|
||||||
|
|
||||||
from .transformations import BaseTransformation
|
from .transformations import BaseTransformation
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -23,8 +18,8 @@ class TransformationManager(models.Manager):
|
|||||||
|
|
||||||
self.create(
|
self.create(
|
||||||
content_type=content_type, object_id=obj.pk,
|
content_type=content_type, object_id=obj.pk,
|
||||||
name=transformation.name, arguments=yaml.dump(
|
name=transformation.name, arguments=yaml_dump(
|
||||||
data=arguments, Dumper=SafeDumper
|
data=arguments
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -96,9 +91,8 @@ class TransformationManager(models.Manager):
|
|||||||
# Some transformations don't require arguments
|
# Some transformations don't require arguments
|
||||||
# return an empty dictionary as ** doesn't allow None
|
# return an empty dictionary as ** doesn't allow None
|
||||||
if transformation.arguments:
|
if transformation.arguments:
|
||||||
kwargs = yaml.load(
|
kwargs = yaml_load(
|
||||||
stream=transformation.arguments,
|
stream=transformation.arguments,
|
||||||
Loader=SafeLoader
|
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
|
|||||||
@@ -2,15 +2,12 @@ from __future__ import unicode_literals
|
|||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
try:
|
|
||||||
from yaml import CSafeLoader as SafeLoader
|
|
||||||
except ImportError:
|
|
||||||
from yaml import SafeLoader
|
|
||||||
|
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.utils.deconstruct import deconstructible
|
from django.utils.deconstruct import deconstructible
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_load
|
||||||
|
|
||||||
|
|
||||||
@deconstructible
|
@deconstructible
|
||||||
class YAMLValidator(object):
|
class YAMLValidator(object):
|
||||||
@@ -20,7 +17,7 @@ class YAMLValidator(object):
|
|||||||
def __call__(self, value):
|
def __call__(self, value):
|
||||||
value = value.strip()
|
value = value.strip()
|
||||||
try:
|
try:
|
||||||
yaml.load(stream=value, Loader=SafeLoader)
|
yaml_load(stream=value)
|
||||||
except yaml.error.YAMLError:
|
except yaml.error.YAMLError:
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
_('Enter a valid YAML value.'),
|
_('Enter a valid YAML value.'),
|
||||||
|
|||||||
@@ -1,14 +1,9 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import yaml
|
|
||||||
|
|
||||||
try:
|
|
||||||
from yaml import CSafeLoader as SafeLoader
|
|
||||||
except ImportError:
|
|
||||||
from yaml import SafeLoader
|
|
||||||
|
|
||||||
from django.utils.module_loading import import_string
|
from django.utils.module_loading import import_string
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_load
|
||||||
|
|
||||||
from .settings import (
|
from .settings import (
|
||||||
setting_storage_backend, setting_storage_backend_arguments
|
setting_storage_backend, setting_storage_backend_arguments
|
||||||
)
|
)
|
||||||
@@ -16,8 +11,7 @@ from .settings import (
|
|||||||
storage_detachedsignature = import_string(
|
storage_detachedsignature = import_string(
|
||||||
dotted_path=setting_storage_backend.value
|
dotted_path=setting_storage_backend.value
|
||||||
)(
|
)(
|
||||||
**yaml.load(
|
**yaml_load(
|
||||||
stream=setting_storage_backend_arguments.value or '{}',
|
stream=setting_storage_backend_arguments.value or '{}'
|
||||||
Loader=SafeLoader
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,14 +1,9 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import yaml
|
|
||||||
|
|
||||||
try:
|
|
||||||
from yaml import CSafeLoader as SafeLoader
|
|
||||||
except ImportError:
|
|
||||||
from yaml import SafeLoader
|
|
||||||
|
|
||||||
from django.utils.module_loading import import_string
|
from django.utils.module_loading import import_string
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_load
|
||||||
|
|
||||||
from .settings import (
|
from .settings import (
|
||||||
setting_documentimagecache_storage,
|
setting_documentimagecache_storage,
|
||||||
setting_documentimagecache_storage_arguments,
|
setting_documentimagecache_storage_arguments,
|
||||||
@@ -18,17 +13,15 @@ from .settings import (
|
|||||||
storage_documentversion = import_string(
|
storage_documentversion = import_string(
|
||||||
dotted_path=setting_storage_backend.value
|
dotted_path=setting_storage_backend.value
|
||||||
)(
|
)(
|
||||||
**yaml.load(
|
**yaml_load(
|
||||||
stream=setting_storage_backend_arguments.value or '{}',
|
stream=setting_storage_backend_arguments.value or '{}',
|
||||||
Loader=SafeLoader
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
storage_documentimagecache = import_string(
|
storage_documentimagecache = import_string(
|
||||||
dotted_path=setting_documentimagecache_storage.value
|
dotted_path=setting_documentimagecache_storage.value
|
||||||
)(
|
)(
|
||||||
**yaml.load(
|
**yaml_load(
|
||||||
stream=setting_documentimagecache_storage_arguments.value or '{}',
|
stream=setting_documentimagecache_storage_arguments.value or '{}',
|
||||||
Loader=SafeLoader
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -4,15 +4,10 @@ import json
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
import sh
|
import sh
|
||||||
import yaml
|
|
||||||
|
|
||||||
try:
|
|
||||||
from yaml import CSafeLoader as SafeLoader
|
|
||||||
except ImportError:
|
|
||||||
from yaml import SafeLoader
|
|
||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_load
|
||||||
from mayan.apps.storage.utils import NamedTemporaryFile
|
from mayan.apps.storage.utils import NamedTemporaryFile
|
||||||
|
|
||||||
from ..literals import DEFAULT_EXIF_PATH
|
from ..literals import DEFAULT_EXIF_PATH
|
||||||
@@ -57,8 +52,8 @@ class EXIFToolDriver(FileMetadataDriver):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def read_settings(self):
|
def read_settings(self):
|
||||||
driver_arguments = yaml.load(
|
driver_arguments = yaml_load(
|
||||||
stream=setting_drivers_arguments.value, Loader=SafeLoader
|
stream=setting_drivers_arguments.value
|
||||||
)
|
)
|
||||||
|
|
||||||
self.exiftool_path = driver_arguments.get(
|
self.exiftool_path = driver_arguments.get(
|
||||||
|
|||||||
@@ -4,15 +4,11 @@ import logging
|
|||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
import sh
|
import sh
|
||||||
import yaml
|
|
||||||
try:
|
|
||||||
from yaml import CSafeLoader as SafeLoader
|
|
||||||
except ImportError:
|
|
||||||
from yaml import SafeLoader
|
|
||||||
|
|
||||||
from django.utils.encoding import force_text
|
from django.utils.encoding import force_text
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_load
|
||||||
from mayan.apps.storage.utils import TemporaryFile
|
from mayan.apps.storage.utils import TemporaryFile
|
||||||
|
|
||||||
from ..classes import OCRBackendBase
|
from ..classes import OCRBackendBase
|
||||||
@@ -115,8 +111,7 @@ class Tesseract(OCRBackendBase):
|
|||||||
logger.debug('Available languages: %s', ', '.join(self.languages))
|
logger.debug('Available languages: %s', ', '.join(self.languages))
|
||||||
|
|
||||||
def read_settings(self):
|
def read_settings(self):
|
||||||
backend_arguments = yaml.load(
|
backend_arguments = yaml_load(
|
||||||
Loader=SafeLoader,
|
|
||||||
stream=setting_ocr_backend_arguments.value or '{}',
|
stream=setting_ocr_backend_arguments.value or '{}',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +1,15 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import yaml
|
|
||||||
|
|
||||||
try:
|
|
||||||
from yaml import CSafeLoader as SafeLoader
|
|
||||||
except ImportError:
|
|
||||||
from yaml import SafeLoader
|
|
||||||
|
|
||||||
from django.utils.module_loading import import_string
|
from django.utils.module_loading import import_string
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_load
|
||||||
|
|
||||||
from .settings import setting_ocr_backend, setting_ocr_backend_arguments
|
from .settings import setting_ocr_backend, setting_ocr_backend_arguments
|
||||||
|
|
||||||
ocr_backend = import_string(
|
ocr_backend = import_string(
|
||||||
dotted_path=setting_ocr_backend.value
|
dotted_path=setting_ocr_backend.value
|
||||||
)(
|
)(
|
||||||
**yaml.load(
|
**yaml_load(
|
||||||
stream=setting_ocr_backend_arguments.value or '{}', Loader=SafeLoader
|
stream=setting_ocr_backend_arguments.value or '{}'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -2,16 +2,11 @@ from __future__ import absolute_import, unicode_literals
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
import yaml
|
|
||||||
try:
|
|
||||||
from yaml import CSafeLoader as SafeLoader
|
|
||||||
except ImportError:
|
|
||||||
from yaml import SafeLoader
|
|
||||||
|
|
||||||
from django.template import loader
|
from django.template import loader
|
||||||
from django.utils.encoding import force_text, python_2_unicode_compatible
|
from django.utils.encoding import force_text, python_2_unicode_compatible
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_load
|
||||||
from mayan.apps.common.settings import (
|
from mayan.apps.common.settings import (
|
||||||
setting_celery_broker_url, setting_celery_result_backend
|
setting_celery_broker_url, setting_celery_result_backend
|
||||||
)
|
)
|
||||||
@@ -95,9 +90,7 @@ class PlatformTemplate(object):
|
|||||||
|
|
||||||
if context_string:
|
if context_string:
|
||||||
context.update(
|
context.update(
|
||||||
yaml.load(
|
yaml_load(stream=context_string)
|
||||||
stream=context_string, Loader=SafeLoader
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
return loader.render_to_string(
|
return loader.render_to_string(
|
||||||
template_name=self.get_template_name(),
|
template_name=self.get_template_name(),
|
||||||
|
|||||||
@@ -9,11 +9,6 @@ import sys
|
|||||||
|
|
||||||
import yaml
|
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.apps import apps
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.utils.functional import Promise
|
from django.utils.functional import Promise
|
||||||
@@ -21,6 +16,8 @@ from django.utils.encoding import (
|
|||||||
force_bytes, force_text, python_2_unicode_compatible
|
force_bytes, force_text, python_2_unicode_compatible
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_dump, yaml_load
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
@@ -85,7 +82,7 @@ class Setting(object):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def deserialize_value(value):
|
def deserialize_value(value):
|
||||||
return yaml.load(stream=value, Loader=SafeLoader)
|
return yaml_load(stream=value)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def express_promises(value):
|
def express_promises(value):
|
||||||
@@ -101,9 +98,8 @@ class Setting(object):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def serialize_value(value):
|
def serialize_value(value):
|
||||||
result = yaml.dump(
|
result = yaml_dump(
|
||||||
data=Setting.express_promises(value), allow_unicode=True,
|
data=Setting.express_promises(value), allow_unicode=True,
|
||||||
Dumper=SafeDumper
|
|
||||||
)
|
)
|
||||||
# safe_dump returns bytestrings
|
# safe_dump returns bytestrings
|
||||||
# Disregard the last 3 dots that mark the end of the YAML document
|
# 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:
|
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)
|
dictionary[setting.global_name] = Setting.express_promises(setting.value)
|
||||||
|
|
||||||
return yaml.dump(
|
return yaml_dump(
|
||||||
data=dictionary, default_flow_style=False, Dumper=SafeDumper
|
data=dictionary, default_flow_style=False
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
@@ -2,15 +2,12 @@ from __future__ import unicode_literals
|
|||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
try:
|
|
||||||
from yaml import CSafeLoader as SafeLoader
|
|
||||||
except ImportError:
|
|
||||||
from yaml import SafeLoader
|
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_load
|
||||||
|
|
||||||
|
|
||||||
class SettingForm(forms.Form):
|
class SettingForm(forms.Form):
|
||||||
value = forms.CharField(
|
value = forms.CharField(
|
||||||
@@ -38,7 +35,7 @@ class SettingForm(forms.Form):
|
|||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
yaml.load(stream=self.cleaned_data['value'], Loader=SafeLoader)
|
yaml_load(stream=self.cleaned_data['value'])
|
||||||
except yaml.YAMLError:
|
except yaml.YAMLError:
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
_(
|
_(
|
||||||
|
|||||||
@@ -4,18 +4,13 @@ import imaplib
|
|||||||
import logging
|
import logging
|
||||||
import poplib
|
import poplib
|
||||||
|
|
||||||
import yaml
|
|
||||||
try:
|
|
||||||
from yaml import CSafeLoader as SafeLoader
|
|
||||||
except ImportError:
|
|
||||||
from yaml import SafeLoader
|
|
||||||
|
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.core.files.base import ContentFile
|
from django.core.files.base import ContentFile
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.encoding import force_bytes
|
from django.utils.encoding import force_bytes
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_load
|
||||||
from mayan.apps.documents.models import Document
|
from mayan.apps.documents.models import Document
|
||||||
from mayan.apps.metadata.api import set_bulk_metadata
|
from mayan.apps.metadata.api import set_bulk_metadata
|
||||||
from mayan.apps.metadata.models import MetadataType
|
from mayan.apps.metadata.models import MetadataType
|
||||||
@@ -142,8 +137,8 @@ class EmailBaseModel(IntervalBaseModel):
|
|||||||
|
|
||||||
with ContentFile(content=message.body, name=label) as file_object:
|
with ContentFile(content=message.body, name=label) as file_object:
|
||||||
if label == source.metadata_attachment_name:
|
if label == source.metadata_attachment_name:
|
||||||
metadata_dictionary = yaml.load(
|
metadata_dictionary = yaml_load(
|
||||||
stream=file_object.read(), Loader=SafeLoader
|
stream=file_object.read()
|
||||||
)
|
)
|
||||||
logger.debug(
|
logger.debug(
|
||||||
'Got metadata dictionary: %s',
|
'Got metadata dictionary: %s',
|
||||||
|
|||||||
@@ -1,13 +1,9 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import yaml
|
|
||||||
try:
|
|
||||||
from yaml import CSafeLoader as SafeLoader
|
|
||||||
except ImportError:
|
|
||||||
from yaml import SafeLoader
|
|
||||||
|
|
||||||
from django.utils.module_loading import import_string
|
from django.utils.module_loading import import_string
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_load
|
||||||
|
|
||||||
from .settings import (
|
from .settings import (
|
||||||
setting_staging_file_image_cache_storage,
|
setting_staging_file_image_cache_storage,
|
||||||
setting_staging_file_image_cache_storage_arguments,
|
setting_staging_file_image_cache_storage_arguments,
|
||||||
@@ -16,8 +12,7 @@ from .settings import (
|
|||||||
storage_staging_file_image_cache = import_string(
|
storage_staging_file_image_cache = import_string(
|
||||||
dotted_path=setting_staging_file_image_cache_storage.value
|
dotted_path=setting_staging_file_image_cache_storage.value
|
||||||
)(
|
)(
|
||||||
**yaml.load(
|
**yaml_load(
|
||||||
stream=setting_staging_file_image_cache_storage_arguments.value or '{}',
|
stream=setting_staging_file_image_cache_storage_arguments.value or '{}',
|
||||||
Loader=SafeLoader
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -6,15 +6,11 @@ import shutil
|
|||||||
|
|
||||||
import mock
|
import mock
|
||||||
from pathlib2 import Path
|
from pathlib2 import Path
|
||||||
import yaml
|
|
||||||
try:
|
|
||||||
from yaml import CSafeDumper as SafeDumper
|
|
||||||
except ImportError:
|
|
||||||
from yaml import SafeDumper
|
|
||||||
|
|
||||||
from django.core import mail
|
from django.core import mail
|
||||||
from django.utils.encoding import force_text
|
from django.utils.encoding import force_text
|
||||||
|
|
||||||
|
from mayan.apps.common.serialization import yaml_dump
|
||||||
from mayan.apps.documents.models import Document
|
from mayan.apps.documents.models import Document
|
||||||
from mayan.apps.documents.tests import (
|
from mayan.apps.documents.tests import (
|
||||||
GenericDocumentTestCase, TEST_COMPRESSED_DOCUMENT_PATH,
|
GenericDocumentTestCase, TEST_COMPRESSED_DOCUMENT_PATH,
|
||||||
@@ -213,8 +209,8 @@ class EmailBaseTestCase(GenericDocumentTestCase):
|
|||||||
metadata_type=test_metadata_type_2
|
metadata_type=test_metadata_type_2
|
||||||
)
|
)
|
||||||
|
|
||||||
test_metadata_yaml = yaml.dump(
|
test_metadata_yaml = yaml_dump(
|
||||||
Dumper=SafeDumper, data={
|
data={
|
||||||
test_metadata_type_1.name: TEST_METADATA_VALUE_1,
|
test_metadata_type_1.name: TEST_METADATA_VALUE_1,
|
||||||
test_metadata_type_2.name: TEST_METADATA_VALUE_2,
|
test_metadata_type_2.name: TEST_METADATA_VALUE_2,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user