darabonba/model.py (42 lines of code) (raw):

import re from darabonba.exceptions import RequiredArgumentException, ValidateException from Tea.model import TeaModel class DaraModel(TeaModel): _map = None def validate(self): pass def to_map(self): return self._map def from_map(self, map=None): pass @staticmethod def validate_required(prop, prop_name): if prop is None: raise RequiredArgumentException(prop_name) @staticmethod def validate_max_length(prop, prop_name, max_length): if len(prop) > max_length: raise ValidateException(f'{prop_name} is exceed max-length: {max_length}') @staticmethod def validate_min_length(prop, prop_name, min_length): if len(prop) < min_length: raise ValidateException(f'{prop_name} is less than min-length: {min_length}') @staticmethod def validate_pattern(prop, prop_name, pattern): match_obj = re.search(pattern, str(prop), re.M | re.I) if not match_obj: raise ValidateException(f'{prop_name} is not match: {pattern}') @staticmethod def validate_maximum(num, prop_name, maximum): if num > maximum: raise ValidateException(f'{prop_name} is greater than the maximum: {maximum}') @staticmethod def validate_minimum(num, prop_name, minimum): if num < minimum: raise ValidateException(f'{prop_name} is less than the minimum: {minimum}') def __str__(self): s = self.to_map() if s: return str(s) else: return object.__str__(self)