From bcd1c7b536f2e8116c2948b8c35216fffcc4a40f Mon Sep 17 00:00:00 2001 From: Nicolas Braud-Santoni Date: Tue, 1 Mar 2016 15:05:05 +0100 Subject: [PATCH] manifest: Load the metaschema only once --- bootstrapvz/base/manifest.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/bootstrapvz/base/manifest.py b/bootstrapvz/base/manifest.py index 570f00b..31a9776 100644 --- a/bootstrapvz/base/manifest.py +++ b/bootstrapvz/base/manifest.py @@ -27,6 +27,11 @@ class Manifest(object): if path is None and data is None: raise ManifestError('`path\' or `data\' must be provided') self.path = path + + import os.path + self.metaschema = load_data(os.path.normpath(os.path.join(os.path.dirname(__file__), + 'metaschema.json'))) + self.load_data(data) self.load_modules() self.validate() @@ -119,13 +124,11 @@ class Manifest(object): :param str schema_path: Path to the json-schema to use for validation """ import jsonschema - import os.path schema = load_data(schema_path) - metaschema = load_data(os.path.normpath(os.path.join(os.path.dirname(__file__), 'metaschema.json'))) try: - jsonschema.validate(schema, metaschema) + jsonschema.validate(schema, self.metaschema) jsonschema.validate(data, schema) except jsonschema.ValidationError as e: self.validation_error(e.message, e.path)