File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -454,3 +454,32 @@ def property_values_string_check(prop):
454454
455455
456456Validation .register_handler ('property' , property_values_string_check )
457+
458+
459+ def property_values_cardinality (prop ):
460+ """
461+ Checks Property values against any set value cardinality.
462+
463+ :param prop: odml.Property
464+ :return: Yields a ValidationError warning, if a set cardinality is not met.
465+ """
466+ if prop .val_cardinality and isinstance (prop .val_cardinality , tuple ):
467+
468+ val_min = prop .val_cardinality [0 ]
469+ val_max = prop .val_cardinality [1 ]
470+
471+ val_len = len (prop .values ) if prop .values else 0
472+
473+ invalid_cause = ""
474+ if val_min and val_len < val_min :
475+ invalid_cause = "minimum %s values" % val_min
476+ elif val_max and (prop .values and len (prop .values ) > val_max ):
477+ invalid_cause = "maximum %s values" % val_max
478+
479+ if invalid_cause :
480+ msg = "Number of Property values does not satisfy value cardinality"
481+ msg += " (%s, %s found)" % (invalid_cause , val_len )
482+ yield ValidationError (prop , msg , LABEL_WARNING )
483+
484+
485+ Validation .register_handler ("property" , property_values_cardinality )
You can’t perform that action at this time.
0 commit comments