add cal_rule.py