code: def get_formatted_string(self, input_string):
          
          if isinstance(input_string, str):
              try:
                  return self.get_processed_string(input_string)
              except KeyNotInContextError as err:
                  # Wrapping the KeyError into a less cryptic error for end-user
                  # friendliness
                  raise KeyNotInContextError(
                      f'Unable to format \'{input_string}\' because {err}'
                  ) from err
          elif isinstance(input_string, SpecialTagDirective):
              return input_string.get_value(self)
          else:
              raise TypeError(f"can only format on strings. {input_string} is a "
                              f"{type(input_string)} instead.")
docs: Return formatted value for input_string.
  
          get_formatted gets a context[key] value.
          get_formatted_string is for any arbitrary string that is not in the
          context.
  
          Only valid if input_string is a type string.
          Return a string interpolated from the context dictionary.
  
          If input_string='Piping {key1} the {key2} wild'
          And context={'key1': 'down', 'key2': 'valleys', 'key3': 'value3'}
  
          Then this will return string: "Piping down the valleys wild"
  
          Args:
              input_string: string to parse for substitutions.
  
          Returns:
              Formatted string.
  
          Raises:
              KeyNotInContextError: context[key] has {somekey} where somekey does
                                    not exist in context dictionary.
              TypeError: Attempt operation on a non-string type.