+
+ def __set_default_mask(self, selector: dict, val: bool = True):
+ def convert_mask(mask):
+ # convert mask from {aa,bb,xxx{yyy}} structure to aa,bbxxx/yyy
+ stack = []
+ result = []
+ word = ''
+ for ch in mask:
+ if ch == '{':
+ if word:
+ stack.append(word)
+ word = ''
+ elif ch == '}':
+ if word:
+ result.append('/'.join(stack + [word]))
+ word = ''
+ if stack:
+ stack.pop()
+ elif ch == ',':
+ if word:
+ result.append('/'.join(stack + [word]))
+ word = ''
+ else:
+ word += ch
+ if word:
+ result.append(word)
+ return ','.join(result)
+
+ mask = getattr(self.fields, "__mask__")
+ mask = convert_mask(str(mask))
+ if not mask:
+ selector_all = self.__gen_selector_from_model_with_value(
+ self.fields)
+ for s in selector_all:
+ selector[s] = val
+ return
+ default_selector = mask
+ self.__update_selector_value(selector, default_selector, val)