class_docstr: The Sendinblue Email Campaigns Table implementation
class_docstr_tok: ["The","Sendinblue","Email","Campaigns","Table","implementation"]
docstr: Deletes an email campaign from Sendinblue.
  
  Parameters
  ----------
  query : ast.Delete
     Given SQL DELETE query
  
  Returns
  -------
  None
  
  Raises
  ------
  RuntimeError
      If an error occurs when calling Sendinblue's API
docstr_tok: ["Deletes","an","email","campaign","from","Sendinblue",".","Parameters","--","--","--","--","--","query",":","ast.Delete","Given","SQL","DELETE","query","Returns","--","--","--","-","None","Raises","--","--","--","RuntimeError","If","an","error","occurs","when","calling","Sendinblue","'s","API"]
code: def delete(self, query: ast.Delete) -> None:
      """
      Deletes an email campaign from Sendinblue.
  
      Parameters
      ----------
      query : ast.Delete
         Given SQL DELETE query
  
      Returns
      -------
      None
  
      Raises
      ------
      RuntimeError
          If an error occurs when calling Sendinblue's API
      """
      # this  parses the DELETE statement to extract where conditions
      delete_statement_parser = DELETEQueryParser(query)
      where_conditions = delete_statement_parser.parse_query()
      # this retrieves the current list of email campaigns and normalize the data into a DataFrame
      email_campaigns_df = pd.json_normalize(self.get_email_campaigns())
      # this execute the delete query  to filter out the campaigns to be deleted
      delete_query_executor = DELETEQueryExecutor(
          email_campaigns_df, where_conditions
      )
      # this gets the updated DataFrame after executing  delete conditions
      email_campaigns_df = delete_query_executor.execute_query()
      campaign_ids = email_campaigns_df["id"].tolist()
      self.delete_email_campaigns(campaign_ids)
  
file_path: mindsdb/mindsdb/integrations/handlers/sendinblue_handler/sendinblue_tables.py
imports: import sib_api_v3_sdk
  import pandas
  from typing import List, Optional, Dict
  from mindsdb.utilities import log
  from mindsdb.integrations.libs.api_handler import APITable
  from mindsdb_sql.parser import ast
  from sib_api_v3_sdk.rest import ApiException
  from datetime import datetime
  from mindsdb.integrations.handlers.utilities.query_utilities import SELECTQueryParser, SELECTQueryExecutor, UPDATEQueryExecutor, UPDATEQueryParser, DELETEQueryParser, DELETEQueryExecutor
label_desc: Use image node_id 4 for calling the EmailCampaignsTable obj's underlying member method code with example usage: obj.delete(query) without return types