Skip to content

Commit

Permalink
ValidationError als warning
Browse files Browse the repository at this point in the history
  • Loading branch information
benverhees committed Jan 22, 2025
1 parent 148a9dd commit 3c4f2fe
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 12 deletions.
14 changes: 8 additions & 6 deletions woningwaardering/vera/bvg/generated.py
Original file line number Diff line number Diff line change
Expand Up @@ -3406,14 +3406,18 @@ class EenhedenEenheid(BaseModel):
@classmethod
def warning_bij_validatiefout(
cls, value: Any, handler: ValidatorFunctionWrapHandler, info: ValidationInfo
):
) -> Any: # pragma: no cover
validation_error: ValidationError | None = None

try:
return handler(value)
except ValidationError as err:
errors: list[str] = []
validation_error = err

if validation_error:
errors: list[str] = []
# Loop door alle fouten in de ValidationError
for error in err.errors():
for error in validation_error.errors():
# Haal het pad naar het veld op waar de fout optrad
locs = tuple(error.get("loc", []))
# Maak een leesbaar pad door veldnamen met punten te verbinden
Expand All @@ -3426,14 +3430,12 @@ def warning_bij_validatiefout(
)
errors.append(readable_error)

# Geef alle fouten als één waarschuwing
warnings.warn(" ".join(errors), UserWarning)

# Verwijder het veld met de fout
for error in err.errors():
for error in validation_error.errors():
locs = tuple(error.get("loc", []))
parent_object = reduce(getitem, locs[:-1], value)

if isinstance(parent_object, dict):
del parent_object[locs[-1]]
else:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,18 @@ class _EenhedenEenheid(BaseModel):
@classmethod
def warning_bij_validatiefout(
cls, value: Any, handler: ValidatorFunctionWrapHandler, info: ValidationInfo
):
) -> Any: # pragma: no cover
validation_error: ValidationError | None = None

try:
return handler(value)
except ValidationError as err:
errors: list[str] = []
validation_error = err

if validation_error:
errors: list[str] = []
# Loop door alle fouten in de ValidationError
for error in err.errors():
for error in validation_error.errors():
# Haal het pad naar het veld op waar de fout optrad
locs = tuple(error.get("loc", []))
# Maak een leesbaar pad door veldnamen met punten te verbinden
Expand All @@ -47,14 +51,12 @@ def warning_bij_validatiefout(
)
errors.append(readable_error)

# Geef alle fouten als één waarschuwing
warnings.warn(" ".join(errors), UserWarning)

# Verwijder het veld met de fout
for error in err.errors():
for error in validation_error.errors():
locs = tuple(error.get("loc", []))
parent_object = reduce(getitem, locs[:-1], value)

if isinstance(parent_object, dict):
del parent_object[locs[-1]]
else:
Expand Down

0 comments on commit 3c4f2fe

Please sign in to comment.