Skip to content

Commit

Permalink
[components] Add *Component suffix to all component classes
Browse files Browse the repository at this point in the history
[INTERNAL_BRANCH=sean/components/add-component-suffix]
  • Loading branch information
smackesey committed Feb 27, 2025
1 parent 0795bc7 commit 7978ba3
Show file tree
Hide file tree
Showing 28 changed files with 137 additions and 116 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from dagster_components.lib import SlingReplicationCollection
from dagster_components.lib import SlingReplicationCollectionComponent


class CustomSubclass(SlingReplicationCollection): ...
class CustomSubclass(SlingReplicationCollectionComponent): ...
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
from collections.abc import Mapping
from typing import Any

from dagster_components.lib import SlingReplicationCollection
from dagster_components.lib import SlingReplicationCollectionComponent

import dagster as dg


class SubclassWithScope(SlingReplicationCollection):
class SubclassWithScope(SlingReplicationCollectionComponent):
def get_additional_scope(self) -> Mapping[str, Any]:
def _custom_cron(cron_schedule: str) -> dg.AutomationCondition:
return (
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
from collections.abc import Iterator

from dagster_components.lib import SlingReplicationCollection
from dagster_components.lib import SlingReplicationCollectionComponent
from dagster_sling import SlingResource

import dagster as dg


class DebugSlingReplicationComponent(SlingReplicationCollection):
class DebugSlingReplicationComponent(SlingReplicationCollectionComponent):
def execute(
self, context: dg.AssetExecutionContext, sling: SlingResource
) -> Iterator:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
type: dagster_components.lib.SlingReplicationCollection
type: dagster_components.lib.SlingReplicationCollectionComponent

attributes:
replications:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {
} from '@dagster-io/ui-components';
import {memo, useMemo} from 'react';

import {VirtualizedSimpleAssetKeyList} from './VirtualizedSimpleAssetKeyList';
import {VirtualizedSimpleAssetComponentKeyList} from './VirtualizedSimpleAssetComponentKeyList';
import {asAssetPartitionRangeInput} from './asInput';
import {useWipeAssets} from './useWipeAssets';
import {RefetchQueriesFunction} from '../apollo-client';
Expand Down Expand Up @@ -75,7 +75,7 @@ export const AssetWipeDialogInner = memo(
{numberFormatter.format(assetKeys.length)}{' '}
{ifPlural(assetKeys.length, 'asset', 'assets')}?
</div>
<VirtualizedSimpleAssetKeyList assetKeys={assetKeys} style={{maxHeight: '50vh'}} />
<VirtualizedSimpleAssetComponentKeyList assetKeys={assetKeys} style={{maxHeight: '50vh'}} />
<div>
Assets defined only by their historical materializations will disappear from the Asset
Catalog. Software-defined assets will remain unless their definition is also deleted.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {displayNameForAssetKey} from '../asset-graph/Utils';
import {AssetKeyInput} from '../graphql/types';
import {Inner, Row} from '../ui/VirtualizedTable';

export const VirtualizedSimpleAssetKeyList = ({
export const VirtualizedSimpleAssetComponentKeyList = ({
assetKeys,
style,
}: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@

if _has_dagster_sling:
from dagster_components.lib.sling_replication_collection.component import (
SlingReplicationCollection as SlingReplicationCollection,
SlingReplicationCollectionComponent as SlingReplicationCollectionComponent,
)

from dagster_components.lib.definitions_component.component import (
DefinitionsComponent as DefinitionsComponent,
)
from dagster_components.lib.pipes_subprocess_script_collection import (
PipesSubprocessScriptCollection as PipesSubprocessScriptCollection,
PipesSubprocessScriptCollectionComponent as PipesSubprocessScriptCollectionComponent,
)
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ class PipesSubprocessScriptSchema(ResolvableSchema[PipesSubprocessScriptSpec]):
assets: Sequence[AssetSpecSchema]


class PipesSubprocessScriptCollectionSchema(ResolvableSchema["PipesSubprocessScriptCollection"]):
class PipesSubprocessScriptCollectionSchema(
ResolvableSchema["PipesSubprocessScriptCollectionComponent"]
):
scripts: Sequence[PipesSubprocessScriptSchema]


Expand All @@ -44,7 +46,7 @@ def resolve_specs_by_path(


@dataclass
class PipesSubprocessScriptCollection(Component):
class PipesSubprocessScriptCollectionComponent(Component):
"""Assets that wrap Python scripts executed with Dagster's PipesSubprocessClient."""

specs_by_path: Annotated[
Expand All @@ -55,9 +57,9 @@ class PipesSubprocessScriptCollection(Component):
)

@staticmethod
def introspect_from_path(path: Path) -> "PipesSubprocessScriptCollection":
def introspect_from_path(path: Path) -> "PipesSubprocessScriptCollectionComponent":
path_specs = {str(path): [AssetSpec(path.stem)] for path in list(path.rglob("*.py"))}
return PipesSubprocessScriptCollection(specs_by_path=path_specs)
return PipesSubprocessScriptCollectionComponent(specs_by_path=path_specs)

@classmethod
def get_schema(cls) -> type[PipesSubprocessScriptCollectionSchema]:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class SlingReplicationSchema(ResolvableSchema[SlingReplicationSpec]):
)


class SlingReplicationCollectionSchema(ResolvableSchema["SlingReplicationCollection"]):
class SlingReplicationCollectionSchema(ResolvableSchema["SlingReplicationCollectionComponent"]):
sling: Optional[SlingResource] = None
replications: Sequence[SlingReplicationSchema]
asset_post_processors: Optional[Sequence[AssetPostProcessorSchema]] = None
Expand All @@ -87,7 +87,7 @@ def resolve_resource(


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

resource: Annotated[SlingResource, FieldResolver(resolve_resource)] = Field(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from dagster_components.lib.test.all_metadata_empty_asset import (
AllMetadataEmptyAsset as AllMetadataEmptyAsset,
AllMetadataEmptyComponent as AllMetadataEmptyComponent,
)
from dagster_components.lib.test.complex_schema_asset import (
ComplexSchemaAsset as ComplexSchemaAsset,
ComplexAssetComponent as ComplexAssetComponent,
)
from dagster_components.lib.test.simple_asset import SimpleAsset as SimpleAsset
from dagster_components.lib.test.simple_asset import SimpleAssetComponent as SimpleAssetComponent
from dagster_components.lib.test.simple_pipes_script_asset import (
SimplePipesScriptAsset as SimplePipesScriptAsset,
SimplePipesScriptComponent as SimplePipesScriptComponent,
)
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from dagster_components.core.component_scaffolder import DefaultComponentScaffolder


class AllMetadataEmptyAsset(Component):
class AllMetadataEmptyComponent(Component):
@classmethod
def get_scaffolder(cls) -> DefaultComponentScaffolder:
return DefaultComponentScaffolder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
)


class ComplexAssetSchema(ResolvableSchema["ComplexSchemaAsset"]):
class ComplexAssetSchema(ResolvableSchema["ComplexAssetComponent"]):
value: str = Field(..., examples=["example_for_value"])
list_value: list[str] = Field(
..., examples=[["example_for_list_value_1", "example_for_list_value_2"]]
Expand All @@ -31,7 +31,7 @@ class ComplexAssetSchema(ResolvableSchema["ComplexSchemaAsset"]):
asset_post_processors: Optional[Sequence[AssetPostProcessorSchema]] = None


class ComplexSchemaAsset(Component):
class ComplexAssetComponent(Component):
"""An asset that has a complex schema."""

@classmethod
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class SimpleAssetSchema(BaseModel):
value: str


class SimpleAsset(Component):
class SimpleAssetComponent(Component):
"""A simple asset that returns a constant string value."""

@classmethod
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,17 @@


# Same schema used for file generation and defs generation
class SimplePipesScriptAssetSchema(BaseModel):
class SimplePipesScriptSchema(BaseModel):
asset_key: str
filename: str


class SimplePipesScriptAssetScaffolder(ComponentScaffolder):
class SimplePipesScriptScaffolder(ComponentScaffolder):
@classmethod
def get_schema(cls):
return SimplePipesScriptAssetSchema
return SimplePipesScriptSchema

def scaffold(
self, request: ComponentScaffoldRequest, params: SimplePipesScriptAssetSchema
) -> None:
def scaffold(self, request: ComponentScaffoldRequest, params: SimplePipesScriptSchema) -> None:
scaffold_component_yaml(request, params.model_dump())
Path(request.component_instance_root_path, params.filename).write_text(
_SCRIPT_TEMPLATE.format(asset_key=params.asset_key)
Expand All @@ -46,19 +44,19 @@ def scaffold(
"""


class SimplePipesScriptAsset(Component):
class SimplePipesScriptComponent(Component):
"""A simple asset that runs a Python script with the Pipes subprocess client.
Because it is a pipes asset, no value is returned.
"""

@classmethod
def get_scaffolder(cls) -> ComponentScaffolder:
return SimplePipesScriptAssetScaffolder()
return SimplePipesScriptScaffolder()

@classmethod
def get_schema(cls):
return SimplePipesScriptAssetSchema
return SimplePipesScriptSchema

def __init__(self, asset_key: AssetKey, script_path: Path):
self._asset_key = asset_key
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,14 @@ def test_list_component_types_command():
result = json.loads(result.output)

assert list(result.keys()) == [
"dagster_components.lib.test.AllMetadataEmptyAsset",
"dagster_components.lib.test.ComplexSchemaAsset",
"dagster_components.lib.test.SimpleAsset",
"dagster_components.lib.test.SimplePipesScriptAsset",
"dagster_components.lib.test.AllMetadataEmptyComponent",
"dagster_components.lib.test.ComplexAssetComponent",
"dagster_components.lib.test.SimpleAssetComponent",
"dagster_components.lib.test.SimplePipesScriptComponent",
]

assert result["dagster_components.lib.test.SimpleAsset"] == {
"name": "SimpleAsset",
assert result["dagster_components.lib.test.SimpleAssetComponent"] == {
"name": "SimpleAssetComponent",
"namespace": "dagster_components.lib.test",
"summary": "A simple asset that returns a constant string value.",
"description": "A simple asset that returns a constant string value.",
Expand All @@ -72,12 +72,12 @@ def test_list_component_types_command():
"filename": {"title": "Filename", "type": "string"},
},
"required": ["asset_key", "filename"],
"title": "SimplePipesScriptAssetSchema",
"title": "SimplePipesScriptSchema",
"type": "object",
}

assert result["dagster_components.lib.test.SimplePipesScriptAsset"] == {
"name": "SimplePipesScriptAsset",
assert result["dagster_components.lib.test.SimplePipesScriptComponent"] == {
"name": "SimplePipesScriptComponent",
"namespace": "dagster_components.lib.test",
"summary": "A simple asset that runs a Python script with the Pipes subprocess client.",
"description": "A simple asset that runs a Python script with the Pipes subprocess client.\n\nBecause it is a pipes asset, no value is returned.",
Expand Down Expand Up @@ -170,9 +170,9 @@ def test_all_components_schema_command():
result = json.loads(result.output)

component_type_keys = [
"ComplexSchemaAsset",
"SimpleAsset",
"SimplePipesScriptAsset",
"ComplexAssetComponent",
"SimpleAssetComponent",
"SimplePipesScriptComponent",
]

assert result["anyOf"] == [
Expand All @@ -197,14 +197,14 @@ def test_all_components_schema_command():
top_level_component_validator = Draft202012Validator(schema=result)
top_level_component_validator.validate(
{
"type": "dagster_components.lib.test.SimpleAsset",
"type": "dagster_components.lib.test.SimpleAssetComponent",
"attributes": {"asset_key": "my_asset", "value": "my_value"},
}
)
with pytest.raises(ValidationError):
top_level_component_validator.validate(
{
"type": "dagster_components.lib.test.SimpleAsset",
"type": "dagster_components.lib.test.SimpleAssetComponent",
"attributes": {"asset_key": "my_asset", "value": "my_value"},
"extra_key": "extra_value",
}
Expand All @@ -222,7 +222,7 @@ def test_scaffold_component_command():
"dagster_components.test",
"scaffold",
"component",
"dagster_components.lib.test.SimplePipesScriptAsset",
"dagster_components.lib.test.SimplePipesScriptComponent",
"bar/components/qux",
"--json-params",
'{"asset_key": "my_asset", "filename": "my_asset.py"}',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
from dagster_components import ComponentLoadContext
from dagster_components.core.component import component
from dagster_components.core.schema.objects import AssetSpecSchema
from dagster_components.lib import PipesSubprocessScriptCollection
from dagster_components.lib import PipesSubprocessScriptCollectionComponent
from dagster_components.lib.pipes_subprocess_script_collection import (
PipesSubprocessScriptCollectionSchema,
PipesSubprocessScriptSchema,
)


@component
def load(context: ComponentLoadContext) -> PipesSubprocessScriptCollection:
def load(context: ComponentLoadContext) -> PipesSubprocessScriptCollectionComponent:
attributes = PipesSubprocessScriptCollectionSchema(
scripts=[
PipesSubprocessScriptSchema(
Expand All @@ -23,4 +23,4 @@ def load(context: ComponentLoadContext) -> PipesSubprocessScriptCollection:
),
]
)
return PipesSubprocessScriptCollection.load(attributes=attributes, context=context)
return PipesSubprocessScriptCollectionComponent.load(attributes=attributes, context=context)
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
type: dagster_components.lib.PipesSubprocessScriptCollection
type: dagster_components.lib.PipesSubprocessScriptCollectionComponent

attributes:
scripts:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
type: dagster_components.lib.SlingReplicationCollection
type: dagster_components.lib.SlingReplicationCollectionComponent

attributes:
replications:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
type: dagster_components.lib.test.SimpleAsset
type: dagster_components.lib.test.SimpleAssetComponent

attributes:
asset_key: "test"
Expand Down
Loading

0 comments on commit 7978ba3

Please sign in to comment.