docs: def make_symbol_table(use_numpy=True, **kws):
      """Create a default symboltable, taking dict of user-defined symbols.
  
      Arguments
      ---------
      numpy : bool, optional
         whether to include symbols from numpy
      kws :  optional
         additional symbol name, value pairs to include in symbol table
  
      Returns
      --------
      symbol_table : dict
         a symbol table that can be used in `asteval.Interpereter`
  
      """
      symtable = {}
  
      for sym in FROM_PY:
          if sym in builtins:
              symtable[sym] = builtins[sym]
  
      for sym in FROM_MATH:
          if hasattr(math, sym):
              symtable[sym] = getattr(math, sym)
  
      if HAS_NUMPY and use_numpy:
          for sym in FROM_NUMPY:
              if hasattr(numpy, sym):
                  symtable[sym] = getattr(numpy, sym)
          for name, sym in NUMPY_RENAMES.items():
              if hasattr(numpy, sym):
                  symtable[name] = getattr(numpy, sym)
  
  
      symtable.update(LOCALFUNCS)
      symtable.update(kws)
  
      return symtable