@@ -408,6 +408,12 @@ def unknown_license_keys(self, expression, unique=True, **kwargs):
408408 symbols = self .unknown_license_symbols (expression , unique = False , ** kwargs )
409409 return self ._keys (symbols , unique )
410410
411+ def validate_license_keys (self , expression ):
412+ unknown_keys = self .unknown_license_keys (expression , unique = True )
413+ if unknown_keys :
414+ msg = 'Unknown license key(s): {}' .format (', ' .join (unknown_keys ))
415+ raise ExpressionError (msg )
416+
411417 def parse (self , expression , validate = False , strict = False , simple = False , ** kwargs ):
412418 """
413419 Return a new license LicenseExpression object by parsing a license
@@ -475,10 +481,7 @@ def parse(self, expression, validate=False, strict=False, simple=False, **kwargs
475481 raise ExpressionError ('expression must be a LicenseExpression once parsed.' )
476482
477483 if validate :
478- unknown_keys = self .unknown_license_keys (expression , unique = True )
479- if unknown_keys :
480- msg = 'Unknown license key(s): {}' .format (', ' .join (unknown_keys ))
481- raise ExpressionError (msg )
484+ self .validate_license_keys (expression )
482485
483486 return expression
484487
@@ -721,9 +724,9 @@ def set_ExpressionInfo_fields(parsed_expression, expression_info):
721724 expression_info .errors .append (str (e ))
722725 expression_info .invalid_symbols .append (e .token_string )
723726
724- # Check `expression` keys
727+ # Check `expression` keys (validate)
725728 try :
726- parsed_expression = self .parse (expression , validate = True )
729+ self .validate_license_keys (expression )
727730 except ExpressionError as e :
728731 error_message = str (e )
729732 expression_info .errors .append (error_message )
0 commit comments