def parse_encrypt_factors(topic: Topic) -> List[EncryptFactorGroup]:
    groups = ArrayHelper(topic.factors) \
     .filter(lambda x: x.encrypt is not None and x.encrypt != FactorEncryptMethod.NONE) \
     .map(lambda x: EncryptFactor(x)) \
     .filter(lambda x: is_not_blank(x.factorName)) \
     .group_by(lambda x: x.names[0])

    return ArrayHelper(list(groups.items())) \
     .map(lambda x: EncryptFactorGroup(name=x[0], factors=x[1])).to_list()
def parse_date_or_time_factors(topic: Topic) -> List[DateOrTimeFactorGroup]:
	groups = ArrayHelper(topic.factors) \
		.filter(is_date_or_time) \
		.map(lambda x: DateOrTimeFactor(x)) \
		.filter(lambda x: is_not_blank(x.factorName)) \
		.group_by(lambda x: x.names[0])

	return ArrayHelper(list(groups.items())) \
		.map(lambda x: DateOrTimeFactorGroup(name=x[0], factors=x[1])).to_list()
	def __init__(self, name: str, factors: List[DateOrTimeFactor]):
		self.name = name
		# in reality, zero or one factor.
		# if there is one, name is same as group's, and will not contain group anymore
		self.factors = ArrayHelper(factors).filter(lambda x: len(x.names) == 1).to_list()
		groups = ArrayHelper(factors).filter(lambda x: len(x.names) > 1) \
			.each(lambda x: x.pop_first_name()) \
			.group_by(lambda x: x.names[0])
		self.groups = ArrayHelper(list(groups.items())) \
			.map(lambda x: DateOrTimeFactorGroup(name=x[0], factors=x[1])).to_list()
Esempio n. 4
0
def parse_default_value_factors(topic: Topic) -> List[DefaultValueFactorGroup]:
    if ask_ignore_default_on_raw():
        return []

    groups = ArrayHelper(topic.factors) \
     .filter(lambda x: x.defaultValue is not None) \
     .map(lambda x: DefaultValueFactor(x)) \
     .filter(lambda x: is_not_blank(x.factorName)) \
     .group_by(lambda x: x.names[0])

    return ArrayHelper(list(groups.items())) \
     .map(lambda x: DefaultValueFactorGroup(name=x[0], factors=x[1])).to_list()