docs: def parse_diff(base_str):
          """
          parse string to regular timedelta
          :param base_str: str
          :return: dict
          """
          temp_dict = {'years': 0,
                       'months': 0,
                       'weeks': 0,
                       'days': 0,
                       'hours': 0,
                       'minutes': 0,
                       'seconds': 0}
  
          _pure_str = re.findall("[a-zA-Z]+", base_str)
          pure_num = [int(_) for _ in re.findall(r'\d+', base_str)]
          pure_str = [filter_unit(_) for _ in _pure_str]
          result_dict = dict(chain(temp_dict.items(), dict(zip(pure_str, pure_num)).items()))
          if result_dict['months'] >= 12:
              advance = result_dict['months'] // 12
              remain = result_dict['months'] % 12
              result_dict['years'] += advance
              result_dict['months'] = remain
          if result_dict['weeks']:
              result_dict['days'] += result_dict['weeks'] * 7
          return result_dict