parser_multiply_rule
Module for ParserMultiplyRule class
!!! classes ParserMultiplyRule
ParserMultiplyRule (IParserRuleBase)
Class for creating a MultiplyRuleData
Source code in parsers/parser_multiply_rule.py
class ParserMultiplyRule(IParserRuleBase):
"""Class for creating a MultiplyRuleData"""
@property
def rule_type_name(self) -> str:
"""Type name for the rule"""
return "multiply_rule"
def parse_dict(self, dictionary: Dict[str, Any], logger: ILogger) -> IRuleData:
"""Parses the provided dictionary to a IRuleData
Args:
dictionary (Dict[str, Any]): Dictionary holding the values
for making the rule
Returns:
RuleBase: Rule based on the provided data
"""
name = get_dict_element("name", dictionary)
input_variable_name = get_dict_element("input_variable", dictionary)
output_variable_name = get_dict_element("output_variable", dictionary)
description = get_dict_element("description", dictionary, False) or ""
multipliers = [get_dict_element("multipliers", dictionary, False)]
date_range = []
if not multipliers[0]:
multipliers_table = get_dict_element("multipliers_table", dictionary)
multipliers_dict = convert_table_element(multipliers_table)
multipliers = get_dict_element("multipliers", multipliers_dict)
start_date = get_dict_element("start_date", multipliers_dict)
end_date = get_dict_element("end_date", multipliers_dict)
validate_type_date(start_date, "start_date")
validate_type_date(end_date, "end_date")
validate_start_before_end(start_date, end_date)
date_range = list(zip(start_date, end_date))
validate_all_instances_number(sum(multipliers, []), "Multipliers")
rule_data = MultiplyRuleData(
name,
multipliers,
input_variable_name,
date_range,
)
rule_data.output_variable = output_variable_name
rule_data.description = description
return rule_data
rule_type_name: str
property
readonly
Type name for the rule
parse_dict(self, dictionary, logger)
Parses the provided dictionary to a IRuleData
Parameters:
Name | Type | Description | Default |
---|---|---|---|
dictionary |
Dict[str, Any] |
Dictionary holding the values for making the rule |
required |
Returns:
Type | Description |
---|---|
RuleBase |
Rule based on the provided data |
Source code in parsers/parser_multiply_rule.py
def parse_dict(self, dictionary: Dict[str, Any], logger: ILogger) -> IRuleData:
"""Parses the provided dictionary to a IRuleData
Args:
dictionary (Dict[str, Any]): Dictionary holding the values
for making the rule
Returns:
RuleBase: Rule based on the provided data
"""
name = get_dict_element("name", dictionary)
input_variable_name = get_dict_element("input_variable", dictionary)
output_variable_name = get_dict_element("output_variable", dictionary)
description = get_dict_element("description", dictionary, False) or ""
multipliers = [get_dict_element("multipliers", dictionary, False)]
date_range = []
if not multipliers[0]:
multipliers_table = get_dict_element("multipliers_table", dictionary)
multipliers_dict = convert_table_element(multipliers_table)
multipliers = get_dict_element("multipliers", multipliers_dict)
start_date = get_dict_element("start_date", multipliers_dict)
end_date = get_dict_element("end_date", multipliers_dict)
validate_type_date(start_date, "start_date")
validate_type_date(end_date, "end_date")
validate_start_before_end(start_date, end_date)
date_range = list(zip(start_date, end_date))
validate_all_instances_number(sum(multipliers, []), "Multipliers")
rule_data = MultiplyRuleData(
name,
multipliers,
input_variable_name,
date_range,
)
rule_data.output_variable = output_variable_name
rule_data.description = description
return rule_data