class_docstr: A class for handling connections and interactions with the Plaid API.
  
  Attributes:
      plaid_env (str): Enviroment used by user [ 'sandbox'(default) OR 'development' OR 'production' ].
      client_id (str): Your Plaid API client_id. 
      secret (str): Your Plaid API secret
      access_token (str): The access token for the Plaid account.
docstr: Filters data from Plaid API's transaction endpoint and returns a DataFrame with the required information.
  Args:
      params (dict, optional): A dictionary of options to be passed to the Plaid API.
  
  Returns:
      pandas.DataFrame: A DataFrame containing the filtered data.
docstr_tok: ["Filters","data","from","Plaid","API","'s","transaction","endpoint","and","returns","a","DataFrame","with","the","required","information",".","Args",":","params","(","dict",",","optional",")",":","A","dictionary","of","options","to","be","passed","to","the","Plaid","API",".","Returns",":","pandas.DataFrame",":","A","DataFrame","containing","the","filtered","data","."]
code: def get_transactions(self, params={}):
      """
      Filters data from Plaid API's transaction endpoint and returns a DataFrame with the required information.
      Args:
          params (dict, optional): A dictionary of options to be passed to the Plaid API.
  
      Returns:
          pandas.DataFrame: A DataFrame containing the filtered data.
      """
  
      self.connect()
      if params.get("start_date") and params.get("end_date"):
          start_date = datetime.strptime(
              params.get("start_date"), "%Y-%m-%d"
          ).date()
          end_date = datetime.strptime(
              params.get("end_date"), "%Y-%m-%d"
          ).date()
      else:
          raise Exception(
              "start_date and end_date is required in format YYYY-MM-DD "
          )
  
      request = TransactionsGetRequest(
          access_token=self.access_token,
          start_date=start_date,
          end_date=end_date,
          options=TransactionsGetRequestOptions(),
      )
  
      response = self.api.transactions_get(request)
      transactions = parse_transaction(response["transactions"])
  
      # Manipulate the count and offset parameters to paginate
      # transactions and retrieve all available data
      while len(transactions) < response["total_transactions"]:
          request = TransactionsGetRequest(
              access_token=self.access_token,
              start_date=start_date,
              end_date=end_date,
              options=TransactionsGetRequestOptions(
                  offset=len(transactions)
              ),
          )
          response = self.api.transactions_get(request)
          transactions.extend(
              parse_transaction(response["transactions"])
          )
  
      # Converting date column from str
      df = pd.DataFrame(transactions)
      for i in ["date", "authorized_date"]:
          df[i] = pd.to_datetime(df[i]).dt.date
  
      return df
  
imports: import pandas
  from mindsdb.utilities import log
  from mindsdb_sql import parse_sql
  from mindsdb.integrations.libs.api_handler import APIHandler, FuncParser
  from mindsdb.integrations.libs.response import HandlerStatusResponse, HandlerResponse, RESPONSE_TYPE
  from datetime import datetime
  import plaid
  from plaid.api import plaid_api
  from plaid.model.accounts_balance_get_request import AccountsBalanceGetRequest
  from plaid.model.accounts_balance_get_request_options import AccountsBalanceGetRequestOptions
  from plaid.model.transactions_get_request import TransactionsGetRequest
  from plaid.model.transactions_get_request_options import TransactionsGetRequestOptions
  from .plaid_tables import BalanceTable, TransactionTable
  from .utils import parse_transaction
label_desc: Use image node_id 7 for calling the PlaidHandler obj's underlying member method code with example usage: obj.get_transactions(params) and returns: df