code: def __init__(self, sql_statement: str, strip_comments: bool = False):
      if strip_comments:
          sql_statement = sqlparse.format(
              sql_statement, strip_comments=True
          )
  
      self.sql: str = sql_statement
      self._tables: set[Table] = set()
      self._alias_names: set[str] = set()
      self._limit: Optional[int] = None
  
      logger.debug("Parsing with sqlparse statement: %s", self.sql)
      self._parsed = sqlparse.parse(self.stripped())
      for statement in self._parsed:
          self._limit = _extract_limit_from_query(statement)
  
imports: import logging
  import re
  from collections.abc import Iterator
  from dataclasses import dataclass
  from typing import Any, cast, Optional
  from urllib import parse
  import sqlparse
  from sqlalchemy import and_
  from sqlparse import keywords
  from sqlparse.lexer import Lexer
  from sqlparse.sql import Identifier, IdentifierList, Parenthesis, remove_quotes, Token, TokenList, Where
  from sqlparse.tokens import Comment, CTE, DDL, DML, Keyword, Name, Punctuation, String, Whitespace, Wildcard
  from sqlparse.utils import imt
  from superset.exceptions import QueryClauseValidationException
  from superset.utils.backports import StrEnum
label_desc: Use image node_id 1 to create a new ParsedQuery object  with example: obj = ParsedQuery(sql_statement, strip_comments)