Uploaded Test files
This commit is contained in:
parent
f584ad9d97
commit
2e81cb7d99
16627 changed files with 2065359 additions and 102444 deletions
82
venv/Lib/site-packages/nbformat/json_compat.py
Normal file
82
venv/Lib/site-packages/nbformat/json_compat.py
Normal file
|
@ -0,0 +1,82 @@
|
|||
# Copyright (c) Jupyter Development Team.
|
||||
# Distributed under the terms of the Modified BSD License.
|
||||
"""
|
||||
Common validator wrapper to provide a uniform usage of other schema validation
|
||||
libraries.
|
||||
"""
|
||||
|
||||
import os
|
||||
|
||||
import jsonschema
|
||||
from jsonschema import Draft4Validator as _JsonSchemaValidator
|
||||
from jsonschema import ValidationError
|
||||
|
||||
try:
|
||||
import fastjsonschema
|
||||
from fastjsonschema import JsonSchemaException as _JsonSchemaException
|
||||
except ImportError:
|
||||
fastjsonschema = None
|
||||
_JsonSchemaException = ValidationError
|
||||
|
||||
|
||||
class JsonSchemaValidator:
|
||||
name = "jsonschema"
|
||||
|
||||
def __init__(self, schema):
|
||||
self._schema = schema
|
||||
self._default_validator = _JsonSchemaValidator(schema) # Default
|
||||
self._validator = self._default_validator
|
||||
|
||||
def validate(self, data):
|
||||
self._default_validator.validate(data)
|
||||
|
||||
def iter_errors(self, data, schema=None):
|
||||
return self._default_validator.iter_errors(data, schema)
|
||||
|
||||
|
||||
class FastJsonSchemaValidator(JsonSchemaValidator):
|
||||
name = "fastjsonschema"
|
||||
|
||||
def __init__(self, schema):
|
||||
self._validator = fastjsonschema.compile(schema)
|
||||
|
||||
def validate(self, data):
|
||||
try:
|
||||
self._validator(data)
|
||||
except _JsonSchemaException as error:
|
||||
raise ValidationError(error.message, schema_path=error.path)
|
||||
|
||||
def iter_errors(self, data, schema=None):
|
||||
errors = []
|
||||
validate_func = self._validator if schema is None else fastjsonschema.compile(schema)
|
||||
try:
|
||||
validate_func(data)
|
||||
except _JsonSchemaException as error:
|
||||
errors = [ValidationError(error.message, schema_path=error.path)]
|
||||
|
||||
return errors
|
||||
|
||||
|
||||
_VALIDATOR_MAP = [
|
||||
("fastjsonschema", fastjsonschema, FastJsonSchemaValidator),
|
||||
("jsonschema", jsonschema, JsonSchemaValidator),
|
||||
]
|
||||
VALIDATORS = [item[0] for item in _VALIDATOR_MAP]
|
||||
|
||||
|
||||
def _validator_for_name(validator_name):
|
||||
if validator_name not in VALIDATORS:
|
||||
raise ValueError("Invalid validator '{0}' value!\nValid values are: {1}".format(
|
||||
validator_name, VALIDATORS))
|
||||
|
||||
for (name, module, validator_cls) in _VALIDATOR_MAP:
|
||||
if module and validator_name == name:
|
||||
return validator_cls
|
||||
|
||||
|
||||
def get_current_validator():
|
||||
"""
|
||||
Return the default validator based on the value of an environment variable.
|
||||
"""
|
||||
validator_name = os.environ.get("NBFORMAT_VALIDATOR", "jsonschema")
|
||||
return _validator_for_name(validator_name)
|
Loading…
Add table
Add a link
Reference in a new issue