class_docstr: Base class to implement a new Prompt.
  
  Inheritors have to override `template` property.
code: def to_string(self):
      self.on_prompt_generation()
  
      prompt_args = {}
      for key, value in self._args.items():
          if isinstance(value, AbstractPrompt):
              args = [
                  arg[1]
                  for arg in string.Formatter().parse(value.template)
                  if arg[1]
              ]
              value.set_vars(
                  {
                      k: v
                      for k, v in self._args.items()
                      if k != key and k in args
                  }
              )
              prompt_args[key] = value.to_string()
          else:
              prompt_args[key] = value
  
      return self.template.format_map(prompt_args)
  
file_path: pandas-ai/pandasai/prompts/base.py
imports: from abc import ABC, abstractmethod
  import string
label_desc: Use image node_id 10 for calling the AbstractPrompt obj's underlying member method code with example usage: obj.to_string() and returns: self