Skip to content

Commit

Permalink
[components] component_type -> registered_component_type (BUILD-655)
Browse files Browse the repository at this point in the history
[INTERNAL_BRANCH=sean/components/registered-component-type]
  • Loading branch information
smackesey committed Feb 1, 2025
1 parent 94e2d67 commit 2610382
Show file tree
Hide file tree
Showing 26 changed files with 80 additions and 53 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from dagster_components import component_type
from dagster_components import registered_component_type
from dagster_components.lib import SlingReplicationCollection


@component_type(name="custom_subclass")
@registered_component_type(name="custom_subclass")
class CustomSubclass(SlingReplicationCollection): ...
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from collections.abc import Mapping
from typing import Any

from dagster_components import component_type
from dagster_components import registered_component_type
from dagster_components.lib import SlingReplicationCollection

import dagster as dg


@component_type(name="custom_subclass")
@registered_component_type(name="custom_subclass")
class SubclassWithScope(SlingReplicationCollection):
def get_additional_scope(self) -> Mapping[str, Any]:
def _custom_cron(cron_schedule: str) -> dg.AutomationCondition:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from collections.abc import Iterator

from dagster_components import component_type
from dagster_components import registered_component_type
from dagster_components.lib import SlingReplicationCollection
from dagster_sling import SlingResource

import dagster as dg


@component_type(name="debug_sling_replication")
@registered_component_type(name="debug_sling_replication")
class DebugSlingReplicationComponent(SlingReplicationCollection):
def execute(
self, context: dg.AssetExecutionContext, sling: SlingResource
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
from dagster_components import Component, ComponentLoadContext, component_type
from dagster_components import (
Component,
ComponentLoadContext,
registered_component_type,
)
from pydantic import BaseModel

from dagster import Definitions


@component_type(name="shell_command")
@registered_component_type(name="shell_command")
class ShellCommand(Component):
@classmethod
def get_schema(cls) -> type[BaseModel]: ...
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
from dagster_components import Component, ComponentLoadContext, component_type
from dagster_components import (
Component,
ComponentLoadContext,
registered_component_type,
)

import dagster as dg

Expand All @@ -10,7 +14,7 @@ def _get_script_runner(val: str) -> ScriptRunner:
return ScriptRunner()


@component_type(name="shell_command")
@registered_component_type(name="shell_command")
class ShellCommand(Component):
def __init__(self, params):
self.params = params
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import subprocess
from typing import Optional

from dagster_components import Component, ComponentLoadContext, component_type
from dagster_components import (
Component,
ComponentLoadContext,
registered_component_type,
)
from dagster_components.core.schema.objects import AssetAttributesModel, OpSpecModel
from pydantic import BaseModel

Expand All @@ -16,7 +20,7 @@ class ShellScriptSchema(BaseModel):
# highlight-end


@component_type(name="shell_command")
@registered_component_type(name="shell_command")
class ShellCommand(Component):
def __init__(self, params: ShellScriptSchema):
self.params = params
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
from typing import Optional

from dagster_components import Component, ComponentLoadContext, component_type
from dagster_components import (
Component,
ComponentLoadContext,
registered_component_type,
)
from dagster_components.core.schema.objects import AssetAttributesModel, OpSpecModel
from pydantic import BaseModel

Expand All @@ -15,7 +19,7 @@ class ShellScriptSchema(BaseModel):
# highlight-end


@component_type(name="shell_command")
@registered_component_type(name="shell_command")
class ShellCommand(Component):
@classmethod
def get_schema(cls) -> type[ShellScriptSchema]:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Component as Component,
ComponentLoadContext as ComponentLoadContext,
ComponentTypeRegistry as ComponentTypeRegistry,
component_type as component_type,
registered_component_type as registered_component_type,
)
from dagster_components.core.component_defs_builder import (
build_component_defs as build_component_defs,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,9 @@ def for_decl_node(self, decl_node: ComponentDeclNode) -> "ComponentLoadContext":
COMPONENT_LOADER_FN_ATTR = "__dagster_component_loader_fn"


def component_type(cls: Optional[type[Component]] = None, *, name: Optional[str] = None) -> Any:
def registered_component_type(
cls: Optional[type[Component]] = None, *, name: Optional[str] = None
) -> Any:
"""Decorator for registering a component type. You must annotate a component
type with this decorator in order for it to be inspectable and loaded by tools.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
)

from dagster_components import Component, ComponentLoadContext
from dagster_components.core.component import component_type
from dagster_components.core.component import registered_component_type
from dagster_components.core.schema.base import ResolvableModel
from dagster_components.core.schema.metadata import ResolvableFieldInfo
from dagster_components.core.schema.objects import (
Expand Down Expand Up @@ -46,7 +46,7 @@ def resolve(self, resolver: TemplatedValueResolver) -> "DbtProjectComponent":
)


@component_type(name="dbt_project")
@registered_component_type(name="dbt_project")
class DbtProjectComponent(Component):
"""Expose a DBT project to Dagster as a set of assets."""

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@
from pydantic import BaseModel
from typing_extensions import Self

from dagster_components import Component, ComponentLoadContext, component_type
from dagster_components import Component, ComponentLoadContext, registered_component_type
from dagster_components.lib.definitions_component.scaffolder import DefinitionsComponentScaffolder


class DefinitionsParamSchema(BaseModel):
definitions_path: Optional[str] = None


@component_type(name="definitions")
@registered_component_type(name="definitions")
class DefinitionsComponent(Component):
"""Wraps an arbitrary set of Dagster definitions."""

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,11 @@
from dagster._core.pipes.subprocess import PipesSubprocessClient
from pydantic import BaseModel

from dagster_components.core.component import Component, ComponentLoadContext, component_type
from dagster_components.core.component import (
Component,
ComponentLoadContext,
registered_component_type,
)
from dagster_components.core.schema.base import ResolvableModel
from dagster_components.core.schema.objects import AssetSpecModel
from dagster_components.core.schema.resolver import TemplatedValueResolver
Expand All @@ -36,7 +40,7 @@ def resolve(self, resolver: TemplatedValueResolver) -> Mapping[str, Sequence[Ass
}


@component_type(name="pipes_subprocess_script_collection")
@registered_component_type(name="pipes_subprocess_script_collection")
class PipesSubprocessScriptCollection(Component):
"""Assets that wrap Python scripts executed with Dagster's PipesSubprocessClient."""

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from typing_extensions import Self

from dagster_components import Component, ComponentLoadContext
from dagster_components.core.component import component_type
from dagster_components.core.component import registered_component_type
from dagster_components.core.component_scaffolder import ComponentScaffolder
from dagster_components.core.schema.metadata import ResolvableFieldInfo
from dagster_components.core.schema.objects import (
Expand Down Expand Up @@ -73,7 +73,7 @@ def resolve(self, resolver: TemplatedValueResolver) -> ResolvedSlingReplicationC
)


@component_type
@registered_component_type
class SlingReplicationCollection(Component):
"""Expose one or more Sling replications to Dagster as assets."""

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
from dagster._core.execution.context.asset_execution_context import AssetExecutionContext
from typing_extensions import Self

from dagster_components import Component, ComponentLoadContext, component_type
from dagster_components import Component, ComponentLoadContext, registered_component_type
from dagster_components.core.component_scaffolder import DefaultComponentScaffolder


@component_type(name="all_metadata_empty_asset")
@registered_component_type(name="all_metadata_empty_asset")
class AllMetadataEmptyAsset(Component):
@classmethod
def load(cls, context: "ComponentLoadContext") -> Self:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from pydantic import BaseModel
from typing_extensions import Self

from dagster_components import Component, ComponentLoadContext, component_type
from dagster_components import Component, ComponentLoadContext, registered_component_type
from dagster_components.core.component_scaffolder import DefaultComponentScaffolder
from dagster_components.core.schema.metadata import ResolvableFieldInfo
from dagster_components.core.schema.objects import (
Expand All @@ -26,7 +26,7 @@ class ComplexAssetParams(BaseModel):
asset_transforms: Optional[Sequence[AssetSpecTransformModel]] = None


@component_type(name="complex_schema_asset")
@registered_component_type(name="complex_schema_asset")
class ComplexSchemaAsset(Component):
"""An asset that has a complex params schema."""

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from pydantic import BaseModel
from typing_extensions import Self

from dagster_components import Component, ComponentLoadContext, component_type
from dagster_components import Component, ComponentLoadContext, registered_component_type
from dagster_components.core.component_scaffolder import (
ComponentScaffolder,
DefaultComponentScaffolder,
Expand All @@ -17,7 +17,7 @@ class SimpleAssetParams(BaseModel):
value: str


@component_type(name="simple_asset")
@registered_component_type(name="simple_asset")
class SimpleAsset(Component):
"""A simple asset that returns a constant string value."""

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from pydantic import BaseModel
from typing_extensions import Self

from dagster_components import Component, ComponentLoadContext, component_type
from dagster_components import Component, ComponentLoadContext, registered_component_type
from dagster_components.core.component_scaffolder import (
ComponentScaffolder,
ComponentScaffoldRequest,
Expand Down Expand Up @@ -47,7 +47,7 @@ def scaffold(
"""


@component_type(name="simple_pipes_script_asset")
@registered_component_type(name="simple_pipes_script_asset")
class SimplePipesScriptAsset(Component):
"""A simple asset that runs a Python script with the Pipes subprocess client.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from pydantic import BaseModel, ConfigDict
from typing_extensions import Self

from dagster_components import Component, component_type
from dagster_components import Component, registered_component_type
from dagster_components.core.component import ComponentLoadContext


Expand All @@ -17,7 +17,7 @@ class MyComponentSchema(BaseModel):
model_config = ConfigDict(extra="forbid")


@component_type
@registered_component_type
class MyComponent(Component):
name = "my_component"

Expand Down Expand Up @@ -46,7 +46,7 @@ class MyNestedComponentSchema(BaseModel):
model_config = ConfigDict(extra="forbid")


@component_type
@registered_component_type
class MyNestedComponent(Component):
name = "my_nested_component"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
from collections.abc import Iterator

from dagster._core.execution.context.asset_execution_context import AssetExecutionContext
from dagster_components import component_type
from dagster_components import registered_component_type
from dagster_components.lib.sling_replication_collection.component import SlingReplicationCollection
from dagster_sling import SlingResource


@component_type(name="debug_sling_replication")
@registered_component_type(name="debug_sling_replication")
class DebugSlingReplicationComponent(SlingReplicationCollection):
def execute(self, context: AssetExecutionContext, sling: SlingResource) -> Iterator:
return sling.replicate(context=context, debug=True)
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from dagster._core.definitions.definitions_class import Definitions
from dagster_components import Component, component_type
from dagster_components import Component, registered_component_type
from dagster_components.core.component import ComponentLoadContext
from dagster_components.core.schema.base import BaseModel
from typing_extensions import Self
Expand All @@ -10,7 +10,7 @@ class MyComponentSchema(BaseModel):
an_int: int


@component_type
@registered_component_type
class MyComponent(Component):
name = "my_component"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from dagster._core.definitions.definitions_class import Definitions
from dagster_components import Component, component_type
from dagster_components import Component, registered_component_type
from dagster_components.core.component import ComponentLoadContext
from pydantic import BaseModel
from typing_extensions import Self
Expand All @@ -10,7 +10,7 @@ class MyNewComponentSchema(BaseModel):
an_int: int


@component_type
@registered_component_type
class MyNewComponent(Component):
name = "my_new_component"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from dagster._core.definitions.result import MaterializeResult
from dagster._core.execution.context.asset_execution_context import AssetExecutionContext
from dagster._utils.env import environ
from dagster_components import component_type
from dagster_components import registered_component_type
from dagster_components.core.component_decl_builder import ComponentFileModel
from dagster_components.core.component_defs_builder import (
YamlComponentDecl,
Expand Down Expand Up @@ -163,7 +163,7 @@ def test_load_from_path(sling_path: Path) -> None:


def test_sling_subclass() -> None:
@component_type(name="debug_sling_replication")
@registered_component_type(name="debug_sling_replication")
class DebugSlingReplicationComponent(SlingReplicationCollection):
def execute(
self, context: AssetExecutionContext, sling: SlingResource
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ def _find_repo_root():

def _generate_test_component_source(number: int) -> str:
return textwrap.dedent(f"""
from dagster_components import Component, component_type
@component_type(name="test_component_{number}")
from dagster_components import Component, registered_component_type
@registered_component_type(name="test_component_{number}")
class TestComponent{number}(Component):
pass
""")
Expand Down
Loading

0 comments on commit 2610382

Please sign in to comment.