From 01d00d54ca860c756c0dc3d458c9d0900b03931a Mon Sep 17 00:00:00 2001 From: Marcus Hoffmann Date: Mon, 23 Dec 2019 01:08:45 +0100 Subject: [PATCH] metadata: use yaml C implementation when available This is an order of magnitude faster. Requires the C yaml bindings to be installed. Fixes fdroid/fdroidserver#716 --- fdroidserver/metadata.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fdroidserver/metadata.py b/fdroidserver/metadata.py index 2924dde8..61c77b06 100644 --- a/fdroidserver/metadata.py +++ b/fdroidserver/metadata.py @@ -27,6 +27,10 @@ import logging import textwrap import io import yaml +try: + from yaml import CSafeLoader as SafeLoader +except ImportError: + from yaml import SafeLoader import importlib from collections import OrderedDict @@ -1070,7 +1074,7 @@ def parse_json_metadata(mf, app): def parse_yaml_metadata(mf, app): - yamldata = yaml.safe_load(mf) + yamldata = yaml.load(mf, Loader=SafeLoader) deprecated_in_yaml = ['Provides']