diff --git a/IPython/nbformat/current.py b/IPython/nbformat/current.py index 5f17051..8d5ed5d 100644 --- a/IPython/nbformat/current.py +++ b/IPython/nbformat/current.py @@ -35,7 +35,7 @@ from IPython.nbformat import v3 as _v_latest from .reader import reads as reader_reads from .reader import versions from .convert import convert -from .validator import nbvalidate +from .validator import validate #----------------------------------------------------------------------------- # Code @@ -79,7 +79,7 @@ def parse_py(s, **kwargs): def reads_json(s, **kwargs): """Read a JSON notebook from a string and return the NotebookNode object.""" nbjson = reader_reads(s) - num_errors = nbvalidate(nbjson) + num_errors = validate(nbjson) if num_errors > 0: print("Num errors: %d" % num_errors) return convert(nbjson, current_nbformat) @@ -87,7 +87,7 @@ def reads_json(s, **kwargs): def writes_json(nb, **kwargs): nbjson = versions[current_nbformat].writes_json(nb, **kwargs) - num_errors = nbvalidate(nbjson) + num_errors = validate(nbjson) if num_errors > 0: print("Num errors: %d" % num_errors) return nbjson diff --git a/IPython/nbformat/validator.py b/IPython/nbformat/validator.py index 57d446b..a03a738 100644 --- a/IPython/nbformat/validator.py +++ b/IPython/nbformat/validator.py @@ -1,12 +1,10 @@ from __future__ import print_function #!/usr/bin/env python # -*- coding: utf8 -*- -import argparse -import traceback import json import os -from IPython.external.jsonschema import Draft3Validator, validate, ValidationError +from IPython.external.jsonschema import Draft3Validator import IPython.external.jsonpointer as jsonpointer from IPython.utils.py3compat import iteritems @@ -16,7 +14,7 @@ schema = os.path.join( os.path.split(__file__)[0], "v%d" % nbformat, nbformat_schema) -def nbvalidate(nbjson, key='/', verbose=True): +def validate(nbjson, key='/', verbose=True): v3schema = resolve_ref(json.load(open(schema, 'r'))) if key: v3schema = jsonpointer.resolve_pointer(v3schema, key) @@ -34,31 +32,33 @@ def resolve_ref(json, base=None): only support local reference to the same json """ - if not base : + if not base: base = json temp = None if type(json) is list: - temp = []; + temp = [] for item in json: temp.append(resolve_ref(item, base=base)) elif type(json) is dict: - temp = {}; - for key,value in iteritems(json): + temp = {} + for key, value in iteritems(json): if key == '$ref': - return resolve_ref(jsonpointer.resolve_pointer(base,value), base=base) - else : - temp[key]=resolve_ref(value, base=base) - else : + return resolve_ref( + jsonpointer.resolve_pointer(base, value), base=base) + else: + temp[key] = resolve_ref(value, base=base) + else: return json return temp + def convert(namein, nameout, indent=2): """resolve the references of namein, save the result in nameout""" jsn = None - with open(namein) as file : + with open(namein) as file: jsn = json.load(file) v = resolve_ref(jsn, base=jsn) x = jsonpointer.resolve_pointer(v, '/notebook') - with open(nameout,'w') as file: - json.dump(x,file,indent=indent) + with open(nameout, 'w') as file: + json.dump(x, file, indent=indent)