26
26
from dagster ._serdes .serdes import deserialize_value
27
27
from dagster ._utils .cached_method import cached_method
28
28
from dagster ._utils .log import get_dagster_logger
29
+ from dagster ._utils .warnings import deprecation_warning
29
30
from pydantic import Field , PrivateAttr
30
31
from sqlglot import exp , parse_one
31
32
@@ -709,7 +710,9 @@ def build_defs(
709
710
@experimental
710
711
def load_sigma_asset_specs (
711
712
organization : SigmaOrganization ,
712
- dagster_sigma_translator : Type [DagsterSigmaTranslator ] = DagsterSigmaTranslator ,
713
+ dagster_sigma_translator : Optional [
714
+ Union [DagsterSigmaTranslator , Type [DagsterSigmaTranslator ]]
715
+ ] = None ,
713
716
sigma_filter : Optional [SigmaFilter ] = None ,
714
717
fetch_column_data : bool = True ,
715
718
fetch_lineage_data : bool = True ,
@@ -719,8 +722,9 @@ def load_sigma_asset_specs(
719
722
720
723
Args:
721
724
organization (SigmaOrganization): The Sigma organization to fetch assets from.
722
- dagster_sigma_translator (Type[DagsterSigmaTranslator]): The translator to use
723
- to convert Sigma content into AssetSpecs. Defaults to DagsterSigmaTranslator.
725
+ dagster_sigma_translator (Optional[Union[DagsterSigmaTranslator, Type[DagsterSigmaTranslatorr]]]):
726
+ The translator to use to convert Sigma content into :py:class:`dagster.AssetSpec`.
727
+ Defaults to :py:class:`DagsterSigmaTranslator`.
724
728
sigma_filter (Optional[SigmaFilter]): Filters the set of Sigma objects to fetch.
725
729
fetch_column_data (bool): Whether to fetch column data for datasets, which can be slow.
726
730
fetch_lineage_data (bool): Whether to fetch any lineage data for workbooks and datasets.
@@ -730,6 +734,16 @@ def load_sigma_asset_specs(
730
734
Returns:
731
735
List[AssetSpec]: The set of assets representing the Sigma content in the organization.
732
736
"""
737
+ if isinstance (dagster_sigma_translator , type ):
738
+ deprecation_warning (
739
+ subject = "Support of `dagster_sigma_translator` as a Type[DagsterSigmaTranslator]" ,
740
+ breaking_version = "1.10" ,
741
+ additional_warn_text = (
742
+ "Pass an instance of DagsterSigmaTranslator or subclass to `dagster_sigma_translator` instead."
743
+ ),
744
+ )
745
+ dagster_sigma_translator = dagster_sigma_translator ()
746
+
733
747
snapshot = None
734
748
if snapshot_path and not os .getenv (SNAPSHOT_ENV_VAR_NAME ):
735
749
snapshot = deserialize_value (Path (snapshot_path ).read_text (), RepositoryLoadData )
@@ -738,7 +752,7 @@ def load_sigma_asset_specs(
738
752
return check .is_list (
739
753
SigmaOrganizationDefsLoader (
740
754
organization = initialized_organization ,
741
- translator_cls = dagster_sigma_translator ,
755
+ translator = dagster_sigma_translator or DagsterSigmaTranslator () ,
742
756
sigma_filter = sigma_filter ,
743
757
fetch_column_data = fetch_column_data ,
744
758
fetch_lineage_data = fetch_lineage_data ,
@@ -767,7 +781,7 @@ def _get_translator_spec_assert_keys_match(
767
781
@dataclass
768
782
class SigmaOrganizationDefsLoader (StateBackedDefinitionsLoader [SigmaOrganizationData ]):
769
783
organization : SigmaOrganization
770
- translator_cls : Type [ DagsterSigmaTranslator ]
784
+ translator : DagsterSigmaTranslator
771
785
snapshot : Optional [RepositoryLoadData ]
772
786
sigma_filter : Optional [SigmaFilter ] = None
773
787
fetch_column_data : bool = True
@@ -790,7 +804,6 @@ def fetch_state(self) -> SigmaOrganizationData:
790
804
)
791
805
792
806
def defs_from_state (self , state : SigmaOrganizationData ) -> Definitions :
793
- translator = self .translator_cls ()
794
807
translator_data_workbooks = [
795
808
SigmaWorkbookTranslatorData (workbook = workbook , organization_data = state )
796
809
for workbook in state .workbooks
@@ -800,7 +813,7 @@ def defs_from_state(self, state: SigmaOrganizationData) -> Definitions:
800
813
for dataset in state .datasets
801
814
]
802
815
asset_specs = [
803
- _get_translator_spec_assert_keys_match (translator , obj )
816
+ _get_translator_spec_assert_keys_match (self . translator , obj )
804
817
for obj in [* translator_data_workbooks , * translator_data_datasets ]
805
818
]
806
819
return Definitions (assets = asset_specs )
0 commit comments