1
0
Fork 0
mirror of https://github.com/qurator-spk/dinglehopper.git synced 2025-06-09 11:50:00 +02:00

dinglehopper: Validate ExtractedText.{segments,_text} in both directions

This commit is contained in:
Gerber, Mike 2020-10-08 12:20:27 +02:00
parent 1f9a680fe7
commit f3aafb6fdf

View file

@ -41,7 +41,6 @@ class ExtractedText:
# An object contains either
# a. _text itself
# b. or segments (ExtractedText) and a joiner
# TODO validator
segments = attr.ib(type=Optional[list], converter=attr.converters.optional(list))
joiner = attr.ib(type=Optional[str])
@ -54,6 +53,8 @@ class ExtractedText:
@_text.validator
def check(self, _, value):
if value is not None and self.segments is not None:
raise ValueError("Can't have both segments and text")
if value is not None and unicodedata.normalize('NFC', value) != value:
raise ValueError('String "{}" is not in NFC.'.format(value))
if value is not None and normalize(value, self.normalization) != value: