code: def parse_formula_name(self, attribute_name):
          
  
          def raise_error():
              raise ValueError(
                  'Unrecognized formula name in variable "{}". Expecting "formula_YYYY" or "formula_YYYY_MM" or "formula_YYYY_MM_DD where YYYY, MM and DD are year, month and day. Found: "{}".'
                  .format(self.name, attribute_name))
  
          if attribute_name == FORMULA_NAME_PREFIX:
              return date.min
  
          FORMULA_REGEX = r'formula_(\d{4})(?:_(\d{2}))?(?:_(\d{2}))?$'  # YYYY or YYYY_MM or YYYY_MM_DD
  
          match = re.match(FORMULA_REGEX, attribute_name)
          if not match:
              raise_error()
          date_str = '-'.join([match.group(1), match.group(2) or '01', match.group(3) or '01'])
  
          try:
              return datetime.datetime.strptime(date_str, '%Y-%m-%d').date()
          except ValueError:  # formula_2005_99_99 for instance
              raise_error()
docs: Returns the starting date of a formula based on its name.
  
          Valid dated name formats are : 'formula', 'formula_YYYY', 'formula_YYYY_MM' and 'formula_YYYY_MM_DD' where YYYY, MM and DD are a year, month and day.
  
          By convention, the starting date of:
              - `formula` is `0001-01-01` (minimal date in Python)
              - `formula_YYYY` is `YYYY-01-01`
              - `formula_YYYY_MM` is `YYYY-MM-01`