You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			121 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			121 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Python
		
	
"""
 | 
						|
An implementation of JSON Schema for Python.
 | 
						|
 | 
						|
The main functionality is provided by the validator classes for each of the
 | 
						|
supported JSON Schema versions.
 | 
						|
 | 
						|
Most commonly, `jsonschema.validators.validate` is the quickest way to simply
 | 
						|
validate a given instance under a schema, and will create a validator
 | 
						|
for you.
 | 
						|
"""
 | 
						|
import warnings
 | 
						|
 | 
						|
from jsonschema._format import FormatChecker
 | 
						|
from jsonschema._types import TypeChecker
 | 
						|
from jsonschema.exceptions import SchemaError, ValidationError
 | 
						|
from jsonschema.validators import (
 | 
						|
    Draft3Validator,
 | 
						|
    Draft4Validator,
 | 
						|
    Draft6Validator,
 | 
						|
    Draft7Validator,
 | 
						|
    Draft201909Validator,
 | 
						|
    Draft202012Validator,
 | 
						|
    validate,
 | 
						|
)
 | 
						|
 | 
						|
 | 
						|
def __getattr__(name):
 | 
						|
    if name == "__version__":
 | 
						|
        warnings.warn(
 | 
						|
            "Accessing jsonschema.__version__ is deprecated and will be "
 | 
						|
            "removed in a future release. Use importlib.metadata directly "
 | 
						|
            "to query for jsonschema's version.",
 | 
						|
            DeprecationWarning,
 | 
						|
            stacklevel=2,
 | 
						|
        )
 | 
						|
 | 
						|
        from importlib import metadata
 | 
						|
        return metadata.version("jsonschema")
 | 
						|
    elif name == "RefResolver":
 | 
						|
        from jsonschema.validators import _RefResolver
 | 
						|
        warnings.warn(
 | 
						|
            _RefResolver._DEPRECATION_MESSAGE,
 | 
						|
            DeprecationWarning,
 | 
						|
            stacklevel=2,
 | 
						|
        )
 | 
						|
        return _RefResolver
 | 
						|
    elif name == "ErrorTree":
 | 
						|
        warnings.warn(
 | 
						|
            "Importing ErrorTree directly from the jsonschema package "
 | 
						|
            "is deprecated and will become an ImportError. Import it from "
 | 
						|
            "jsonschema.exceptions instead.",
 | 
						|
            DeprecationWarning,
 | 
						|
            stacklevel=2,
 | 
						|
        )
 | 
						|
        from jsonschema.exceptions import ErrorTree
 | 
						|
        return ErrorTree
 | 
						|
    elif name == "FormatError":
 | 
						|
        warnings.warn(
 | 
						|
            "Importing FormatError directly from the jsonschema package "
 | 
						|
            "is deprecated and will become an ImportError. Import it from "
 | 
						|
            "jsonschema.exceptions instead.",
 | 
						|
            DeprecationWarning,
 | 
						|
            stacklevel=2,
 | 
						|
        )
 | 
						|
        from jsonschema.exceptions import FormatError
 | 
						|
        return FormatError
 | 
						|
    elif name == "Validator":
 | 
						|
        warnings.warn(
 | 
						|
            "Importing Validator directly from the jsonschema package "
 | 
						|
            "is deprecated and will become an ImportError. Import it from "
 | 
						|
            "jsonschema.protocols instead.",
 | 
						|
            DeprecationWarning,
 | 
						|
            stacklevel=2,
 | 
						|
        )
 | 
						|
        from jsonschema.protocols import Validator
 | 
						|
        return Validator
 | 
						|
    elif name == "RefResolutionError":
 | 
						|
        from jsonschema.exceptions import _RefResolutionError
 | 
						|
        warnings.warn(
 | 
						|
            _RefResolutionError._DEPRECATION_MESSAGE,
 | 
						|
            DeprecationWarning,
 | 
						|
            stacklevel=2,
 | 
						|
        )
 | 
						|
        return _RefResolutionError
 | 
						|
 | 
						|
    format_checkers = {
 | 
						|
        "draft3_format_checker": Draft3Validator,
 | 
						|
        "draft4_format_checker": Draft4Validator,
 | 
						|
        "draft6_format_checker": Draft6Validator,
 | 
						|
        "draft7_format_checker": Draft7Validator,
 | 
						|
        "draft201909_format_checker": Draft201909Validator,
 | 
						|
        "draft202012_format_checker": Draft202012Validator,
 | 
						|
    }
 | 
						|
    ValidatorForFormat = format_checkers.get(name)
 | 
						|
    if ValidatorForFormat is not None:
 | 
						|
        warnings.warn(
 | 
						|
            f"Accessing jsonschema.{name} is deprecated and will be "
 | 
						|
            "removed in a future release. Instead, use the FORMAT_CHECKER "
 | 
						|
            "attribute on the corresponding Validator.",
 | 
						|
            DeprecationWarning,
 | 
						|
            stacklevel=2,
 | 
						|
        )
 | 
						|
        return ValidatorForFormat.FORMAT_CHECKER
 | 
						|
 | 
						|
    raise AttributeError(f"module {__name__} has no attribute {name}")
 | 
						|
 | 
						|
 | 
						|
__all__ = [
 | 
						|
    "Draft3Validator",
 | 
						|
    "Draft4Validator",
 | 
						|
    "Draft6Validator",
 | 
						|
    "Draft7Validator",
 | 
						|
    "Draft201909Validator",
 | 
						|
    "Draft202012Validator",
 | 
						|
    "FormatChecker",
 | 
						|
    "SchemaError",
 | 
						|
    "TypeChecker",
 | 
						|
    "ValidationError",
 | 
						|
    "validate",
 | 
						|
]
 |