Skip to content

Commit

Permalink
Stop using private API jsonschema
Browse files Browse the repository at this point in the history
This library relied on a private API of jsonschema to map a validation
error to the right `OCPPError`. As of jsonschema==4.19.0, the private
API has changed.[^1]. Using the latest release of jsonschema with this
library caused an `ImportError`.

This commit removes the dependency on the private API.

[^1]: python-jsonschema/jsonschema@9313230
  • Loading branch information
OrangeTux committed Sep 26, 2023
1 parent 060fe91 commit c67ca12
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions ocpp/messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
from typing import Callable, Dict, Union

from jsonschema import Draft4Validator
from jsonschema import _validators as SchemaValidators
from jsonschema.exceptions import ValidationError as SchemaValidationError

from ocpp.exceptions import (
Expand Down Expand Up @@ -226,16 +225,20 @@ def validate_payload(message: Union[Call, CallResult], ocpp_version: str) -> Non
try:
validator.validate(message.payload)
except SchemaValidationError as e:
if e.validator == SchemaValidators.type.__name__:
if e.validator == "type":
# if e.validator == SchemaValidators.type.__name__:
raise TypeConstraintViolationError(
details={"cause": e.message, "ocpp_message": message}
)
elif e.validator == SchemaValidators.additionalProperties.__name__:
elif e.validator == "additionalProperties":
# elif e.validator == SchemaValidators.additionalProperties.__name__:
raise FormatViolationError(
details={"cause": e.message, "ocpp_message": message}
)
elif e.validator == SchemaValidators.required.__name__:
elif e.validator == "required":
# elif e.validator == SchemaValidators.required.__name__:
raise ProtocolError(details={"cause": e.message})

elif e.validator == "maxLength":
raise TypeConstraintViolationError(
details={"cause": e.message, "ocpp_message": message}
Expand Down

0 comments on commit c67ca12

Please sign in to comment.