Source code for sqllineage.core.analyzer

from abc import abstractmethod
from typing import List

from sqllineage.core.holders import StatementLineageHolder
from sqllineage.core.metadata_provider import MetaDataProvider


[docs] class LineageAnalyzer: """SQL Statement Level Lineage Analyzer Parser specific implementation should inherit this class and implement analyze method """ PARSER_NAME: str = "" SUPPORTED_DIALECTS: List[str] = []
[docs] @abstractmethod def analyze( self, sql: str, metadata_provider: MetaDataProvider ) -> StatementLineageHolder: """ to analyze single statement sql and store the result into StatementLineageHolder. :param sql: single-statement SQL string to be processed :param metadata_provider: :class:`sqllineage.core.metadata_provider.MetaDataProvider` provides metadata on tables to help lineage analyzing :return: :class:`sqllineage.core.holders.StatementLineageHolder` """