code: def select(self, query: ast.Select) -> pd.DataFrame:
      select_statement_parser = SELECTQueryParser(
          query, "invoices", self.get_columns()
      )
      (
          selected_columns,
          where_conditions,
          order_by_conditions,
          result_limit,
      ) = select_statement_parser.parse_query()
  
      invoices_df = pd.json_normalize(
          self.get_invoices(count=result_limit)
      )
      select_statement_executor = SELECTQueryExecutor(
          invoices_df,
          selected_columns,
          where_conditions,
          order_by_conditions,
      )
      invoices_df = select_statement_executor.execute_query()
  
      return invoices_df
  
imports: import paypalrestsdk
  import pandas
  from typing import Text, List, Dict
  from mindsdb_sql.parser import ast
  from mindsdb.integrations.libs.api_handler import APITable
  from mindsdb.integrations.handlers.utilities.query_utilities import SELECTQueryParser, SELECTQueryExecutor
label_desc: Use image node_id 1 for calling the InvoicesTable obj's underlying member method code with example usage: obj.select(query) and returns: invoices_df