dagster 1.12.11__py3-none-any.whl → 1.12.12__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
dagster/_cli/asset.py CHANGED
@@ -43,7 +43,11 @@ def asset_cli():
43
43
  @click.option("--partition", help="Asset partition to target", required=False)
44
44
  @click.option(
45
45
  "--partition-range",
46
- help="Asset partition range to target i.e. <start>...<end>",
46
+ help=(
47
+ "Asset partition range to materialize in the format <start>...<end>. "
48
+ "Requires all assets to have a BackfillPolicy.single_run() policy, which allows "
49
+ "the partition range to be executed in a single run. For example: 2025-01-01...2025-01-05"
50
+ ),
47
51
  required=False,
48
52
  )
49
53
  @click.option(
@@ -163,12 +167,18 @@ def execute_materialize_command(
163
167
  for asset_key in asset_keys:
164
168
  backfill_policy = implicit_job_def.asset_layer.get(asset_key).backfill_policy
165
169
  if (
166
- backfill_policy is not None
167
- and backfill_policy.policy_type != BackfillPolicyType.SINGLE_RUN
170
+ backfill_policy is None
171
+ or backfill_policy.policy_type != BackfillPolicyType.SINGLE_RUN
168
172
  ):
169
173
  check.failed(
170
- "Provided partition range, but not all assets have a single-run backfill policy."
174
+ "Partition ranges with the CLI require all selected assets to have a "
175
+ "BackfillPolicy.single_run() policy. This allows the partition range to be "
176
+ "executed in a single run. Assets without this policy would require creating "
177
+ "a backfill with separate runs per partition, which needs a running daemon "
178
+ "process. Consider using the Dagster UI or a running daemon to execute "
179
+ "partition ranges for assets without a single-run backfill policy."
171
180
  )
181
+
172
182
  try:
173
183
  implicit_job_def.validate_partition_key(
174
184
  partition_range_start, selected_asset_keys=asset_keys, context=context
@@ -181,6 +191,7 @@ def execute_materialize_command(
181
191
  "All selected assets must have a PartitionsDefinition containing the passed"
182
192
  f" partition key `{partition_range_start}` or have no PartitionsDefinition."
183
193
  )
194
+
184
195
  tags = {
185
196
  ASSET_PARTITION_RANGE_START_TAG: partition_range_start,
186
197
  ASSET_PARTITION_RANGE_END_TAG: partition_range_end,
dagster/_cli/job.py CHANGED
@@ -405,11 +405,16 @@ def execute_execute_command(
405
405
  for asset_key in job_def.asset_layer.executable_asset_keys:
406
406
  backfill_policy = job_def.asset_layer.get(asset_key).backfill_policy
407
407
  if (
408
- backfill_policy is not None
409
- and backfill_policy.policy_type != BackfillPolicyType.SINGLE_RUN
408
+ backfill_policy is None
409
+ or backfill_policy.policy_type != BackfillPolicyType.SINGLE_RUN
410
410
  ):
411
411
  check.failed(
412
- "Provided partition range, but not all assets have a single-run backfill policy."
412
+ "Partition ranges with the CLI require all selected assets to have a "
413
+ "BackfillPolicy.single_run() policy. This allows the partition range to be "
414
+ "executed in a single run. Assets without this policy would require creating "
415
+ "a backfill with separate runs per partition, which needs a running daemon "
416
+ "process. Consider using the Dagster UI or a running daemon to execute "
417
+ "partition ranges for assets without a single-run backfill policy."
413
418
  )
414
419
  try:
415
420
  job_def.validate_partition_key(
@@ -132,6 +132,10 @@ class SerializableEntitySubset(Generic[T_EntityKey]):
132
132
  def is_compatible_with_partitions_def(
133
133
  self, partitions_def: Optional[PartitionsDefinition]
134
134
  ) -> bool:
135
+ from dagster._core.definitions.partitions.definition.time_window import (
136
+ TimeWindowPartitionsDefinition,
137
+ )
138
+
135
139
  if self.is_partitioned:
136
140
  # for some PartitionSubset types, we have access to the underlying partitions
137
141
  # definitions, so we can ensure those are identical
@@ -150,6 +154,11 @@ class SerializableEntitySubset(Generic[T_EntityKey]):
150
154
  and partitions_def.has_partition_key(r.end)
151
155
  for r in self.value.key_ranges
152
156
  )
157
+ elif isinstance(self.value, DefaultPartitionsSubset) and isinstance(
158
+ partitions_def, TimeWindowPartitionsDefinition
159
+ ):
160
+ return all(partitions_def.has_partition_key(k) for k in self.value.subset)
161
+
153
162
  else:
154
163
  return partitions_def is not None
155
164
  else:
@@ -2,6 +2,7 @@ import importlib
2
2
  import inspect
3
3
  import os
4
4
  import sys
5
+ import uuid
5
6
  from abc import ABC, abstractmethod
6
7
  from collections.abc import Callable, Sequence
7
8
  from pathlib import Path
@@ -59,7 +60,11 @@ def rebase_file(relative_path_in_file: str, file_path_resides_in: str) -> str:
59
60
  )
60
61
 
61
62
 
62
- def load_python_file(python_file: Union[str, Path], working_directory: Optional[str]) -> ModuleType:
63
+ def load_python_file(
64
+ python_file: Union[str, Path],
65
+ working_directory: Optional[str],
66
+ add_uuid_suffix: bool = False,
67
+ ) -> ModuleType:
63
68
  """Takes a path to a python file and returns a loaded module."""
64
69
  check.inst_param(python_file, "python_file", (str, Path))
65
70
  check.opt_str_param(working_directory, "working_directory")
@@ -68,6 +73,8 @@ def load_python_file(python_file: Union[str, Path], working_directory: Optional[
68
73
  os.stat(python_file)
69
74
 
70
75
  module_name = os.path.splitext(os.path.basename(python_file))[0]
76
+ if add_uuid_suffix:
77
+ module_name = f"{module_name}_{uuid.uuid4().hex}"
71
78
 
72
79
  # Use the passed in working directory for local imports (sys.path[0] isn't
73
80
  # consistently set in the different entry points that Dagster uses to import code)
@@ -1,3 +1,4 @@
1
+ import itertools
1
2
  from collections.abc import Iterator, Mapping, Sequence
2
3
  from dataclasses import dataclass
3
4
  from typing import ( # noqa: UP035
@@ -312,3 +313,38 @@ class AutomationConditionEvaluationState:
312
313
  @property
313
314
  def true_subset(self) -> SerializableEntitySubset:
314
315
  return self.previous_evaluation.true_subset
316
+
317
+
318
+ def get_expanded_label(
319
+ item: Union[AutomationConditionEvaluation, AutomationConditionSnapshot],
320
+ use_label=False,
321
+ ) -> Sequence[str]:
322
+ if isinstance(item, AutomationConditionSnapshot):
323
+ label, name, description, children = (
324
+ item.node_snapshot.label,
325
+ item.node_snapshot.name,
326
+ item.node_snapshot.description,
327
+ item.children,
328
+ )
329
+ else:
330
+ snapshot = item.condition_snapshot
331
+ label, name, description, children = (
332
+ snapshot.label,
333
+ snapshot.name,
334
+ snapshot.description,
335
+ item.child_evaluations,
336
+ )
337
+
338
+ if use_label and label is not None:
339
+ return [label]
340
+ node_text = name or description
341
+ child_labels = [f"({' '.join(get_expanded_label(c, use_label=True))})" for c in children]
342
+ if len(child_labels) == 0:
343
+ return [node_text]
344
+ elif len(child_labels) == 1:
345
+ return [node_text, f"{child_labels[0]}"]
346
+ else:
347
+ # intersperses node_text (e.g. AND) between each child label
348
+ return list(itertools.chain(*itertools.zip_longest(child_labels, [], fillvalue=node_text)))[
349
+ :-1
350
+ ]
@@ -82,11 +82,11 @@ def asset(
82
82
  io_manager_def: Optional[object] = ...,
83
83
  io_manager_key: Optional[str] = ...,
84
84
  dagster_type: Optional[DagsterType] = ...,
85
- partitions_def: Optional[PartitionsDefinition] = ...,
85
+ partitions_def: Optional[PartitionsDefinition[str]] = ...,
86
86
  op_tags: Optional[Mapping[str, Any]] = ...,
87
87
  group_name: Optional[str] = ...,
88
88
  output_required: bool = ...,
89
- automation_condition: Optional[AutomationCondition] = ...,
89
+ automation_condition: Optional[AutomationCondition[AssetKey]] = ...,
90
90
  backfill_policy: Optional[BackfillPolicy] = ...,
91
91
  retry_policy: Optional[RetryPolicy] = ...,
92
92
  code_version: Optional[str] = ...,
@@ -95,14 +95,14 @@ def asset(
95
95
  owners: Optional[Sequence[str]] = ...,
96
96
  kinds: Optional[AbstractSet[str]] = ...,
97
97
  pool: Optional[str] = ...,
98
- **kwargs,
98
+ **kwargs: Any,
99
99
  ) -> Callable[[Callable[..., Any]], AssetsDefinition]: ...
100
100
 
101
101
 
102
102
  @overload
103
103
  def asset(
104
104
  compute_fn: Callable[..., Any],
105
- **kwargs,
105
+ **kwargs: Any,
106
106
  ) -> AssetsDefinition: ...
107
107
 
108
108
 
@@ -168,11 +168,11 @@ def asset(
168
168
  io_manager_def: Optional[object] = None,
169
169
  io_manager_key: Optional[str] = None,
170
170
  dagster_type: Optional[DagsterType] = None,
171
- partitions_def: Optional[PartitionsDefinition] = None,
171
+ partitions_def: Optional[PartitionsDefinition[str]] = None,
172
172
  op_tags: Optional[Mapping[str, Any]] = None,
173
173
  group_name: Optional[str] = None,
174
174
  output_required: bool = True,
175
- automation_condition: Optional[AutomationCondition] = None,
175
+ automation_condition: Optional[AutomationCondition[AssetKey]] = None,
176
176
  freshness_policy: Optional[FreshnessPolicy] = None,
177
177
  backfill_policy: Optional[BackfillPolicy] = None,
178
178
  retry_policy: Optional[RetryPolicy] = None,
@@ -182,7 +182,7 @@ def asset(
182
182
  owners: Optional[Sequence[str]] = None,
183
183
  kinds: Optional[AbstractSet[str]] = None,
184
184
  pool: Optional[str] = None,
185
- **kwargs,
185
+ **kwargs: Any,
186
186
  ) -> Union[AssetsDefinition, Callable[[Callable[..., Any]], AssetsDefinition]]:
187
187
  """Create a definition for how to compute an asset.
188
188
 
@@ -590,7 +590,7 @@ def multi_asset(
590
590
  config_schema: Optional[UserConfigSchema] = None,
591
591
  required_resource_keys: Optional[AbstractSet[str]] = None,
592
592
  internal_asset_deps: Optional[Mapping[str, set[AssetKey]]] = None,
593
- partitions_def: Optional[PartitionsDefinition] = None,
593
+ partitions_def: Optional[PartitionsDefinition[str]] = None,
594
594
  hooks: Optional[AbstractSet[HookDefinition]] = None,
595
595
  backfill_policy: Optional[BackfillPolicy] = None,
596
596
  op_tags: Optional[Mapping[str, Any]] = None,
@@ -769,7 +769,7 @@ def graph_asset(
769
769
  config: Optional[Union[ConfigMapping, Mapping[str, Any]]] = None,
770
770
  key_prefix: Optional[CoercibleToAssetKeyPrefix] = None,
771
771
  group_name: Optional[str] = None,
772
- partitions_def: Optional[PartitionsDefinition] = None,
772
+ partitions_def: Optional[PartitionsDefinition[str]] = None,
773
773
  hooks: Optional[AbstractSet[HookDefinition]] = None,
774
774
  metadata: Optional[RawMetadataMapping] = ...,
775
775
  tags: Optional[Mapping[str, str]] = ...,
@@ -777,7 +777,7 @@ def graph_asset(
777
777
  kinds: Optional[AbstractSet[str]] = None,
778
778
  legacy_freshness_policy: Optional[LegacyFreshnessPolicy] = ...,
779
779
  auto_materialize_policy: Optional[AutoMaterializePolicy] = ...,
780
- automation_condition: Optional[AutomationCondition] = ...,
780
+ automation_condition: Optional[AutomationCondition[AssetKey]] = ...,
781
781
  backfill_policy: Optional[BackfillPolicy] = ...,
782
782
  resource_defs: Optional[Mapping[str, ResourceDefinition]] = ...,
783
783
  check_specs: Optional[Sequence[AssetCheckSpec]] = None,
@@ -806,19 +806,19 @@ def graph_asset(
806
806
  config: Optional[Union[ConfigMapping, Mapping[str, Any]]] = None,
807
807
  key_prefix: Optional[CoercibleToAssetKeyPrefix] = None,
808
808
  group_name: Optional[str] = None,
809
- partitions_def: Optional[PartitionsDefinition] = None,
809
+ partitions_def: Optional[PartitionsDefinition[str]] = None,
810
810
  hooks: Optional[AbstractSet[HookDefinition]] = None,
811
811
  metadata: Optional[RawMetadataMapping] = None,
812
812
  tags: Optional[Mapping[str, str]] = None,
813
813
  owners: Optional[Sequence[str]] = None,
814
- automation_condition: Optional[AutomationCondition] = None,
814
+ automation_condition: Optional[AutomationCondition[AssetKey]] = None,
815
815
  backfill_policy: Optional[BackfillPolicy] = None,
816
816
  resource_defs: Optional[Mapping[str, ResourceDefinition]] = None,
817
817
  check_specs: Optional[Sequence[AssetCheckSpec]] = None,
818
818
  code_version: Optional[str] = None,
819
819
  key: Optional[CoercibleToAssetKey] = None,
820
820
  kinds: Optional[AbstractSet[str]] = None,
821
- **kwargs,
821
+ **kwargs: Any,
822
822
  ) -> Union[AssetsDefinition, Callable[[Callable[..., Any]], AssetsDefinition]]:
823
823
  """Creates a software-defined asset that's computed using a graph of ops.
824
824
 
@@ -21,6 +21,7 @@ def _kill_on_cancel(instance_ref: InstanceRef, run_id, shutdown_event):
21
21
  if run.status in [
22
22
  DagsterRunStatus.CANCELING,
23
23
  DagsterRunStatus.CANCELED,
24
+ DagsterRunStatus.FAILURE,
24
25
  ]:
25
26
  print( # noqa: T201
26
27
  f"Detected run status {run.status}, sending interrupt to main thread"
@@ -25,6 +25,7 @@ from dagster_shared.telemetry import (
25
25
  TelemetrySettings,
26
26
  dagster_home_if_set,
27
27
  get_or_set_instance_id,
28
+ get_or_set_user_id,
28
29
  log_telemetry_action,
29
30
  write_telemetry_log_line,
30
31
  )
@@ -379,6 +380,7 @@ def log_remote_repo_stats(
379
380
  client_time=str(datetime.datetime.now()),
380
381
  event_id=str(uuid.uuid4()),
381
382
  instance_id=instance_id,
383
+ user_id=get_or_set_user_id(),
382
384
  metadata={
383
385
  **get_stats_from_remote_repo(remote_repo),
384
386
  "source": source,
@@ -450,6 +452,7 @@ def log_repo_stats(
450
452
  client_time=str(datetime.datetime.now()),
451
453
  event_id=str(uuid.uuid4()),
452
454
  instance_id=instance_id,
455
+ user_id=get_or_set_user_id(),
453
456
  metadata={
454
457
  "source": source,
455
458
  "pipeline_name_hash": job_name_hash,
@@ -43,6 +43,7 @@ AVAILABLE_EXAMPLES = [
43
43
  "project_analytics",
44
44
  "project_fully_featured",
45
45
  "quickstart_etl",
46
+ "snowflake_cortex",
46
47
  "tutorial_notebook_assets",
47
48
  "with_great_expectations",
48
49
  "with_openai",
@@ -28,6 +28,7 @@ from dagster._cli.workspace.cli_target import get_repository_python_origin_from_
28
28
  from dagster._config.pythonic_config.resource import get_resource_type_name
29
29
  from dagster._core.definitions.asset_selection import AssetSelection
30
30
  from dagster._core.definitions.assets.job.asset_job import is_reserved_asset_job_name
31
+ from dagster._core.definitions.declarative_automation.serialized_objects import get_expanded_label
31
32
  from dagster._core.definitions.definitions_load_context import (
32
33
  DefinitionsLoadContext,
33
34
  DefinitionsLoadType,
@@ -177,7 +178,9 @@ def list_definitions(
177
178
  group=node.group_name,
178
179
  kinds=sorted(list(node.kinds)),
179
180
  description=node.description,
180
- automation_condition=node.automation_condition.get_label()
181
+ automation_condition=" ".join(
182
+ get_expanded_label(node.automation_condition.get_snapshot())
183
+ )
181
184
  if node.automation_condition
182
185
  else None,
183
186
  tags=sorted(f'"{k}"="{v}"' for k, v in node.tags.items() if _tag_filter(k)),
dagster/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "1.12.11"
1
+ __version__ = "1.12.12"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dagster
3
- Version: 1.12.11
3
+ Version: 1.12.12
4
4
  Summary: Dagster is an orchestration platform for the development, production, and observation of data assets.
5
5
  Author: Dagster Labs
6
6
  Author-email: hello@dagsterlabs.com
@@ -60,8 +60,8 @@ Requires-Dist: universal_pathlib; python_version < "3.12"
60
60
  Requires-Dist: universal_pathlib>=0.2.0; python_version >= "3.12"
61
61
  Requires-Dist: rich
62
62
  Requires-Dist: filelock
63
- Requires-Dist: dagster-pipes==1.12.11
64
- Requires-Dist: dagster-shared==1.12.11
63
+ Requires-Dist: dagster-pipes==1.12.12
64
+ Requires-Dist: dagster-shared==1.12.12
65
65
  Requires-Dist: antlr4-python3-runtime
66
66
  Provides-Extra: docker
67
67
  Requires-Dist: docker; extra == "docker"
@@ -88,7 +88,7 @@ Requires-Dist: ruff==0.11.5; extra == "test"
88
88
  Provides-Extra: test-components
89
89
  Requires-Dist: tomlkit; extra == "test-components"
90
90
  Requires-Dist: jsonschema; extra == "test-components"
91
- Requires-Dist: pandas; extra == "test-components"
91
+ Requires-Dist: pandas<3.0.0; extra == "test-components"
92
92
  Requires-Dist: duckdb; extra == "test-components"
93
93
  Provides-Extra: mypy
94
94
  Requires-Dist: mypy==1.8.0; extra == "mypy"
@@ -4,7 +4,7 @@ dagster/_annotations.py,sha256=GC7Rc8ZJZS9EpUuiCMyrtLZ5lsGGjPPkVtlmaClkt2o,1610
4
4
  dagster/_builtins.py,sha256=J6A1CE28JV0itz73hCaHIKoUknb1j5B3QO5Frx_hQuU,471
5
5
  dagster/_module_alias_map.py,sha256=KsLPXRga52UbPcEjFpOie8tvb7sGdNnikl3MUelYtVA,3349
6
6
  dagster/py.typed,sha256=la67KBlbjXN-_-DfGNcdOcjYumVpKG_Tkw-8n5dnGB4,8
7
- dagster/version.py,sha256=V9Hrmon3VMx6Fm-BKFFV3DZcAfdU2IO-xs1MB4F4LlI,24
7
+ dagster/version.py,sha256=vKk1j8B-0kB8gelcQBK0OZVY0ogGIIA3KR4K_1iNmJQ,24
8
8
  dagster/_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  dagster/_api/get_server_id.py,sha256=sBjhjcHgB__iIN567QCJmTtBK6-v31VfjDsYNZIohVw,731
10
10
  dagster/_api/list_repositories.py,sha256=fbjMobgFKzwoMN825GEgDeCx1jzUlW2vPhPDuYIg93g,3905
@@ -18,14 +18,14 @@ dagster/_api/snapshot_sensor.py,sha256=_82m5cvlMk20LthzsI9ItjInHvqs3IVUXy5rllU6p
18
18
  dagster/_check/__init__.py,sha256=rAQ12QVMC3hHvL2rTbfA8-hhidu3zoP5y0ZnizqLqic,3615
19
19
  dagster/_cli/__init__.py,sha256=JplfqlA9u-tp2fWytdiePQI4H3Wj8YCKPzj7ZLOK0z4,1389
20
20
  dagster/_cli/api.py,sha256=Hf1qqeU6eVSsR-5kjkGVtoW1vfH4J-UUklD5AYMl1mc,32407
21
- dagster/_cli/asset.py,sha256=Q8ktHz8j-9iJm9qnb6f4HOL0KTvGFH5X9J-KDIEGG-M,12751
21
+ dagster/_cli/asset.py,sha256=Eyxa-AmkwanG4Kp36ZBlFCTBIpszeVGJCavBcwEEgxs,13432
22
22
  dagster/_cli/code_server.py,sha256=9__r3D8b9OnWAuG1-L_v6rCIkJDSPo-x0sLBH5c30hE,10399
23
23
  dagster/_cli/config_scaffolder.py,sha256=D3JYF_8u1mSgaYqrV_LHIDFoGrrP2UUNuJXZtegkGYk,2374
24
24
  dagster/_cli/debug.py,sha256=ub8kEXDpnysokKUY_khPLYjLV-AKc4Sr4J3xIfznxJA,3400
25
25
  dagster/_cli/definitions.py,sha256=0YR3-hbtg1cg36YK-xoYvJlEpGPZ-9G3E4885R-R_S4,5395
26
26
  dagster/_cli/dev.py,sha256=spRTstgbAUy8raECbSfKfSCwR3VUgNwJ1L9JzrKArKQ,12399
27
27
  dagster/_cli/instance.py,sha256=CSxsaPPRMT2TgGQw4abdLeO1kMX5oZ5lxqfdlYMrD7Q,6687
28
- dagster/_cli/job.py,sha256=bfhM2Nb5VO4ickm5tlWktjLQ9nOImY7HJ5a-Ec9ImRE,35600
28
+ dagster/_cli/job.py,sha256=0w-3yYtBB5altfKuutEeP_LiQfUrj1hZeqZBL1jM-DY,36078
29
29
  dagster/_cli/project.py,sha256=OB6VAUmvvZxZwgSZkwlqEQrNQ33x9dnRuAhgbHF74PM,10330
30
30
  dagster/_cli/proxy_server_manager.py,sha256=lJNBT3_ztC3eWfq-DMCZiBcFDZmBICurpGMcz6pPxcs,5938
31
31
  dagster/_cli/run.py,sha256=WQu6eDJ4cjQr6htIoYwm1A-OAPci-8OMEWHfY_-s1ck,5751
@@ -60,7 +60,7 @@ dagster/_config/pythonic_config/typing_utils.py,sha256=iph3bfIu2-ANo3pfuQZKOB3xj
60
60
  dagster/_core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
61
  dagster/_core/assets.py,sha256=WJl_wtNmZPD0yPPsIPTWvaVhUVt8sE_EAts3dmE2g-s,983
62
62
  dagster/_core/captured_log_api.py,sha256=CKXR2vfHoKQhJTXDKCTk7OqQjbwGlWb7F5BvXdSFclA,1711
63
- dagster/_core/code_pointer.py,sha256=LfgQ4IPenIK2DtyfvAH_qcOl36JYVg3rGtlaHNCPVmY,12424
63
+ dagster/_core/code_pointer.py,sha256=f8fu_NoBdu2zpKZYirEiR9pJIsYZPkqH1kPW6KhniM4,12564
64
64
  dagster/_core/debug.py,sha256=_hzIFHGR58jTkFY84Awcxdw9WnOUKvlM7F20-Pk3kkQ,2301
65
65
  dagster/_core/decorator_utils.py,sha256=X3c0O7XjBHho0ccbkKi7lVqS-zv2sAaBKOrlmcGZoZc,9724
66
66
  dagster/_core/errors.py,sha256=UTfu5kdq3XcDxMn0wF4yNBoK5RX-TkA1OQ3y6R0U-40,26360
@@ -73,7 +73,7 @@ dagster/_core/nux.py,sha256=z5AmDl_zp572aIQTciHDM-PdSLhWwIrTzEHcEem6mHs,1029
73
73
  dagster/_core/op_concurrency_limits_counter.py,sha256=tJoAiVBo9zLfIbT1fFaEeQr0hTqN9SZQYJqNHBaZ6cA,11441
74
74
  dagster/_core/origin.py,sha256=ZJ9GO2_-tLb8Q9wXLShhPEK6NPRHJ5r6TZoDLNUk1xg,3641
75
75
  dagster/_core/remote_origin.py,sha256=9jR8LU-830gMx_j7nagvOgE7D8nitadDjEHfIt6GIXo,19335
76
- dagster/_core/telemetry.py,sha256=ARmmJwPvskzCv-ANxyDyT1ruSKauMiWWkZECvElqEQg,20063
76
+ dagster/_core/telemetry.py,sha256=QDuLXO4mzwkzW_KqPqr7-xsU-nvJFApkh9HgwaADgeM,20179
77
77
  dagster/_core/telemetry_upload.py,sha256=N5LPfAuGkAFr54V049W4KvXg2x4Zt5ecU34p5_HfrZY,4847
78
78
  dagster/_core/test_utils.py,sha256=xqnrQ5CLKSh5bmeLEXPCVoNoX0I3gyhy3VAnfvQ2PkE,26467
79
79
  dagster/_core/utility_ops.py,sha256=KtVCu9FquKD4AfXBHrRTeWSuRrz1kHta9ABRMC7ubTU,1468
@@ -82,7 +82,7 @@ dagster/_core/asset_graph_view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
82
82
  dagster/_core/asset_graph_view/asset_graph_view.py,sha256=LlUQUvjNupyNdnAXgEiBgqrSWbw0B2gOy9JqEJ1EZMc,42021
83
83
  dagster/_core/asset_graph_view/bfs.py,sha256=x1HRAiT7fN87ZfL4hdlEBNHvScXwGxNa1i4dHzR9gvg,8157
84
84
  dagster/_core/asset_graph_view/entity_subset.py,sha256=VlvH2kR9Ov-eB4nOjyObd_Mq1WHb2YiG1St6bzlFBuc,5596
85
- dagster/_core/asset_graph_view/serializable_entity_subset.py,sha256=kV9InWpbXsEACGwBIqizHxSWlU6XwNWsaaIPnAvBhAs,7358
85
+ dagster/_core/asset_graph_view/serializable_entity_subset.py,sha256=jpFtcO4g-ZIERqStd09fcrCREOTHkZ9jOxj1dwivvG0,7746
86
86
  dagster/_core/container_context/__init__.py,sha256=YxylRIFRSQ5yYetyE6C09MyDBtk19QtUsUUkJd4mRas,215
87
87
  dagster/_core/container_context/config.py,sha256=wtFTDLs1OMMqiOx4CbUEg7gP7XPzDdAB-P-7dp64PG0,1301
88
88
  dagster/_core/definitions/__init__.py,sha256=XF5z5xyFd5X9-P2KnSOQmpKMMo8klCwoolz4Cu8pXkk,9143
@@ -208,7 +208,7 @@ dagster/_core/definitions/declarative_automation/automation_condition.py,sha256=
208
208
  dagster/_core/definitions/declarative_automation/automation_condition_evaluator.py,sha256=2KXtlpu0qVSxy3tqzHCGTY4Q-QlQfIuzF4NpzLxk6E4,9622
209
209
  dagster/_core/definitions/declarative_automation/automation_condition_tester.py,sha256=QqxG9eGheEKHEt_WjGWjSV1Mz0t5bDMEVhZaH506YiE,7115
210
210
  dagster/_core/definitions/declarative_automation/automation_context.py,sha256=-wnFXPRwCCiLOz7FYBUdoLhQmPCe9OY8pH5kE9tImlc,11456
211
- dagster/_core/definitions/declarative_automation/serialized_objects.py,sha256=V0xlcVuC3kLgqI77nbT2r6THFimqWWPJuPfQr5eXQMY,12668
211
+ dagster/_core/definitions/declarative_automation/serialized_objects.py,sha256=L5eGF2j3R1uK_TLsReceeEHAuNDypfjt0SCKdkrkfyo,13861
212
212
  dagster/_core/definitions/declarative_automation/utils.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
213
213
  dagster/_core/definitions/declarative_automation/legacy/__init__.py,sha256=8ftenCz41M-t8ykfZZW7kNBQuWkShsq7IGk3nujfRF0,123
214
214
  dagster/_core/definitions/declarative_automation/legacy/legacy_context.py,sha256=zRD0MMTTud6U4arfyaS5xcLFfF1AW67ON-Dt5idqMWY,18188
@@ -228,7 +228,7 @@ dagster/_core/definitions/declarative_automation/operators/since_operator.py,sha
228
228
  dagster/_core/definitions/declarative_automation/operators/utils.py,sha256=cg3F0GbO4DacupGIg2JTjCRKs9vhp7ro2-A3QQsUTRc,1322
229
229
  dagster/_core/definitions/decorators/__init__.py,sha256=nZab7hwK6UgnRh5EvP4H6kf75XzWptWN7XRN9cQv39M,908
230
230
  dagster/_core/definitions/decorators/asset_check_decorator.py,sha256=xThUiK6Tmi90ZwFyMH6RLnAmIRJRI8npWe6d1Eyj3mQ,19051
231
- dagster/_core/definitions/decorators/asset_decorator.py,sha256=yn3VPs_IekQ90GN7eCl166lh5pXCkljfVz7vhJ4CZuE,54651
231
+ dagster/_core/definitions/decorators/asset_decorator.py,sha256=eNGi67HGmEYF4YOABRVQZP2t-F-EsdIxZLvXWkCDgCM,54736
232
232
  dagster/_core/definitions/decorators/config_mapping_decorator.py,sha256=-0I74xAEPgvinT-ySF8hR9X2NUImDIz1G6yGtGONJTA,4953
233
233
  dagster/_core/definitions/decorators/decorator_assets_definition_builder.py,sha256=KrcLTzZXjlN03UC-A3lXb_4H7G27G9CpYSKEDJats-w,30882
234
234
  dagster/_core/definitions/decorators/graph_decorator.py,sha256=iGSSGWxn4cpJWTkId-DTbFmm6qf80fUT7I8h_zsxZwI,9278
@@ -323,7 +323,7 @@ dagster/_core/execution/job_execution_result.py,sha256=wY5cFQp3AmCtfGgVtOIoXD2p9
323
323
  dagster/_core/execution/memoization.py,sha256=1z2wYAkjQy7nPJfvzxMqQInmjMagpuRfMh6aEUpLUwc,998
324
324
  dagster/_core/execution/resources_init.py,sha256=t4Y7CJp4aGobSe-777WUSXuDJ6iDNoG8_Vkys5XTbNs,19689
325
325
  dagster/_core/execution/retries.py,sha256=LgwLSE-ZqUZYkzWfARmtHz1DYMZcfiaRh2Uc6Mhe8wY,6363
326
- dagster/_core/execution/run_cancellation_thread.py,sha256=i5GWLkc6q8jD5Iq5EJl8hGz0AkGdDTYSeSTs2lo74Q8,1539
326
+ dagster/_core/execution/run_cancellation_thread.py,sha256=hU8CubHQ5C49QCPQucfQc5_Vey3nXYX8iSuAiSvm1-Y,1581
327
327
  dagster/_core/execution/run_metrics_thread.py,sha256=QnAQ4RMDR6oayKdujsroAF89vUQI96_77K-DOGOJMJU,11585
328
328
  dagster/_core/execution/stats.py,sha256=2SSwpc_oon9MeYEAXGDOa-r1tsxMy0LVgNwtH1V6ef4,14253
329
329
  dagster/_core/execution/step_dependency_config.py,sha256=OncskwLvAp1ODVrkrPhvz1sHPCmJjwef_bJyMNX2-Gg,924
@@ -642,7 +642,7 @@ dagster/_daemon/run_coordinator/__init__.py,sha256=bGB6eE5Qujr9tpPaXuHXbzioywsc9
642
642
  dagster/_daemon/run_coordinator/queued_run_coordinator_daemon.py,sha256=qu2NQCFJ7YIFydb8zyfpeyOwZZXdaK5Sat3rP5O94Wc,20211
643
643
  dagster/_experimental/__init__.py,sha256=neUdP3MLSFZjVTpc_mraGEkrt-SEAiYJGeX44JzyMlk,300
644
644
  dagster/_generate/__init__.py,sha256=RctCCaSawF_t6F2XkN48ytPX-VqRjAEHC09d6P3Of88,233
645
- dagster/_generate/download.py,sha256=984QWtHFRswfD6USOlYt6Yr2_xBxZL3EgOEP1JvrFqw,3346
645
+ dagster/_generate/download.py,sha256=ddHeIPuzryFVxjGWKCmSSHlje-xuwekdeohXOEd7fH8,3370
646
646
  dagster/_generate/generate.py,sha256=vNOP3n9p8QOwYP-2V7Su4tA08YxgmlSrj0tfA24ByFo,1422
647
647
  dagster/_generate/templates/PROJECT_NAME_PLACEHOLDER/README.md.jinja,sha256=pRETiGTZ6_W87mw2x3qB_TU-J1i3nGpWQWZh0PnXdOk,1742
648
648
  dagster/_generate/templates/PROJECT_NAME_PLACEHOLDER/pyproject.toml.jinja,sha256=-Xu-80ZRhpWX4g7x6Fhmmm6iEXzB4RP8oUn9AJQ8qI4,546
@@ -801,7 +801,7 @@ dagster/components/lib/sql_component/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeu
801
801
  dagster/components/lib/sql_component/sql_client.py,sha256=iNQOkd4wZs1Vv6mo0vG5UhhUeIRxS2xI6F5G8C3ok8c,311
802
802
  dagster/components/lib/sql_component/sql_component.py,sha256=hfphuHdWq02-CcVqIX1Jb6Q0xj2sDxpnOKNCjgfK1dk,3897
803
803
  dagster/components/list/__init__.py,sha256=sgkMP-KLNI2C9XFJJlvj5ar4bZZHKu6lomriGXGCMRM,183
804
- dagster/components/list/list.py,sha256=mCvzDPaODjuAecfNdkANl2bdsMLuU6aLv66qDVN93nw,11523
804
+ dagster/components/list/list.py,sha256=2-ibqpD-dbcfjkaf217baX5QmwQCDvpQdlRzwCq1fvg,11701
805
805
  dagster/components/resolved/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
806
806
  dagster/components/resolved/base.py,sha256=ybv1WkQChlPBKHN7_VXIGtAohMV2WAnr2FOxyFWyVB0,20150
807
807
  dagster/components/resolved/context.py,sha256=abYHWnnVBT1O6Vl0GwkhxEJtadmdHVYlMEDA9NyBjiQ,8547
@@ -824,9 +824,9 @@ dagster/components/utils/translation.py,sha256=gKal6ZdMbYImiBLZVa9E2pz4690j8Hukf
824
824
  dagster/deprecated/__init__.py,sha256=fkuCwd_79EmS-Voox0YlWEHWxZwQ0ZM_V0viwxw5isw,127
825
825
  dagster/preview/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
826
826
  dagster/preview/freshness/__init__.py,sha256=zq0UU-3mnxycgJDtAZ9DFWiBh4eXxKCaKbeuRmUl3_Y,276
827
- dagster-1.12.11.dist-info/licenses/LICENSE,sha256=4lsMW-RCvfVD4_F57wrmpe3vX1xwUk_OAKKmV_XT7Z0,11348
828
- dagster-1.12.11.dist-info/METADATA,sha256=TiJ3mrw3erh1Ys5sxTcbYqH-trU8MRo9nChnNe48IXY,12218
829
- dagster-1.12.11.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
830
- dagster-1.12.11.dist-info/entry_points.txt,sha256=D4W0jf1lM8zq82j3DJd9JkZEmHdFz5gkz8ddRzOEzpc,139
831
- dagster-1.12.11.dist-info/top_level.txt,sha256=Gx3NqlMQh6AsfIZaJJXEfep5yh-e9pUxkzOlUV3s6CM,8
832
- dagster-1.12.11.dist-info/RECORD,,
827
+ dagster-1.12.12.dist-info/licenses/LICENSE,sha256=4lsMW-RCvfVD4_F57wrmpe3vX1xwUk_OAKKmV_XT7Z0,11348
828
+ dagster-1.12.12.dist-info/METADATA,sha256=rfD8noucfFxbPl1zFT2ScLl6dyXV5O1S_rbBvI-EPXc,12224
829
+ dagster-1.12.12.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
830
+ dagster-1.12.12.dist-info/entry_points.txt,sha256=D4W0jf1lM8zq82j3DJd9JkZEmHdFz5gkz8ddRzOEzpc,139
831
+ dagster-1.12.12.dist-info/top_level.txt,sha256=Gx3NqlMQh6AsfIZaJJXEfep5yh-e9pUxkzOlUV3s6CM,8
832
+ dagster-1.12.12.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5