class_docstr: A String Formatter that allows evaluation of simple expressions.
  
  Any time a format key is not found in the kwargs,
  it will be tried as an expression in the kwargs namespace.
  
  Note that this version allows slicing using [1:2], so you cannot specify
  a format string. Use :class:`EvalFormatter` to permit format strings.
  
  Examples
  --------
  ::
  
      In [1]: f = FullEvalFormatter()
      In [2]: f.format('{n//4}', n=8)
      Out[2]: '2'
  
      In [3]: f.format('{list(range(5))[2:4]}')
      Out[3]: '[2, 3]'
  
      In [4]: f.format('{3*2}')
      Out[4]: '6'
class_docstr_tok: ["A","String","Formatter","that","allows","evaluation","of","simple","expressions",".","Any","time","a","format","key","is","not","found","in","the","kwargs",",","it","will","be","tried","as","an","expression","in","the","kwargs","namespace",".","Note","that","this","version","allows","slicing","using","[","1:2","]",",","so","you","can","not","specify","a","format","string",".","Use",":","class",":","`","EvalFormatter","`","to","permit","format","strings",".","Examples","--","--","--","--",":",":","In","[","1","]",":","f","=","FullEvalFormatter","(",")","In","[","2","]",":","f.format","(","'","{","n\/\/4","}","'",",","n=8",")","Out","[","2","]",":","'","2'","In","[","3","]",":","f.format","(","'","{","list","(","range","(","5",")",")","[","2:4","]","}","'",")","Out","[","3","]",":","'","[","2",",","3","]","'","In","[","4","]",":","f.format","(","'","{","3","*","2","}","'",")","Out","[","4","]",":","'","6","'"]
code: def vformat(self, format_string: str, args, kwargs) -> str:
      result = []
      for (
          literal_text,
          field_name,
          format_spec,
          conversion,
      ) in self.parse(format_string):
          # output the literal text
          if literal_text:
              result.append(literal_text)
  
          # if there's a field, output it
          if field_name is not None:
              # this is some markup, find the object and do
              # the formatting
  
              if format_spec:
                  # override format spec, to allow slicing:
                  field_name = ":".join([field_name, format_spec])
  
              # eval the contents of the field for the object
              # to be formatted
              obj = eval(field_name, kwargs)
  
              # do any conversion on the resulting object
              obj = self.convert_field(obj, conversion)
  
              # format the object and append to the result
              result.append(self.format_field(obj, ""))
  
      return "".join(result)
  
imports: import os
  import re
  import string
  import sys
  import textwrap
  import warnings
  from string import Formatter
  from pathlib import Path
  from typing import List, Union, Optional, Dict, Tuple
label_desc: Use image node_id 1 for calling the FullEvalFormatter obj's underlying member method code with example usage: obj.vformat(format_string, args, kwargs) and returns: str