code: def generate(self, where):
          
          if where is None:
              return None
  
          q = self.table.queryables()
          try:
              return Expr(where, queryables=q, encoding=self.table.encoding)
          except NameError:
              # raise a nice message, suggesting that the user should use
              # data_columns
              raise ValueError(
                  "The passed where expression: {0}\n"
                  "            contains an invalid variable reference\n"
                  "            all of the variable references must be a "
                  "reference to\n"
                  "            an axis (e.g. 'index' or 'columns'), or a "
                  "data_column\n"
                  "            The currently defined references are: {1}\n"
                  .format(where, ','.join(q.keys()))
              )
docs: where can be a : dict,list,tuple,string