dagster-async-executor 0.0.2__tar.gz → 0.0.4__tar.gz

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.
Files changed (18) hide show
  1. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/PKG-INFO +1 -1
  2. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/dagster_async_executor/__init__.py +1 -1
  3. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/dagster_async_executor/execution/plan/execute_plan.py +3 -1
  4. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/dagster_async_executor/execution/plan/execute_step.py +3 -1
  5. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/dagster_async_executor/executor.py +13 -3
  6. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/dagster_async_executor.egg-info/PKG-INFO +1 -1
  7. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/pyproject.toml +4 -4
  8. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/README.md +0 -0
  9. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/dagster_async_executor/execution/__init__.py +0 -0
  10. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/dagster_async_executor/execution/plan/__init__.py +0 -0
  11. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/dagster_async_executor/execution/plan/compute.py +0 -0
  12. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/dagster_async_executor/execution/plan/compute_generator.py +0 -0
  13. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/dagster_async_executor/executor_definition.py +0 -0
  14. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/dagster_async_executor.egg-info/SOURCES.txt +0 -0
  15. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/dagster_async_executor.egg-info/dependency_links.txt +0 -0
  16. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/dagster_async_executor.egg-info/requires.txt +0 -0
  17. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/dagster_async_executor.egg-info/top_level.txt +0 -0
  18. {dagster_async_executor-0.0.2 → dagster_async_executor-0.0.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dagster-async-executor
3
- Version: 0.0.2
3
+ Version: 0.0.4
4
4
  Summary: Async Support for Dagster
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -2,7 +2,7 @@ from dagster._core.libraries import DagsterLibraryRegistry
2
2
 
3
3
  from dagster_async_executor.executor_definition import async_executor as async_executor
4
4
 
5
- __version__ = "0.0.2"
5
+ __version__ = "0.0.4"
6
6
 
7
7
  DagsterLibraryRegistry.register(
8
8
  "dagster-async-executor", __version__, is_dagster_package=False
@@ -214,7 +214,9 @@ async def _trigger_hook(
214
214
  try:
215
215
  with user_code_error_boundary(
216
216
  HookExecutionError,
217
- lambda: f"Error occurred during the execution of hook_fn triggered for {op_label}",
217
+ lambda: (
218
+ f"Error occurred during the execution of hook_fn triggered for {op_label}"
219
+ ),
218
220
  log_manager=hook_context.log,
219
221
  ):
220
222
  if inspect.iscoroutinefunction(hook_def.hook_fn):
@@ -780,7 +780,9 @@ async def _store_output(
780
780
  for elt in iterate_with_context(
781
781
  lambda: op_execution_error_boundary(
782
782
  DagsterExecutionHandleOutputError,
783
- msg_fn=lambda: f'Error occurred while handling output "{output_context.name}" of step "{step_context.step.key}":',
783
+ msg_fn=lambda: (
784
+ f'Error occurred while handling output "{output_context.name}" of step "{step_context.step.key}":'
785
+ ),
784
786
  step_context=step_context,
785
787
  step_key=step_context.step.key,
786
788
  output_name=output_context.name,
@@ -238,10 +238,20 @@ class AsyncExecutor(Executor):
238
238
  send_stream.clone(),
239
239
  )
240
240
 
241
- try:
241
+ # When the only remaining work is parked in ActiveExecution
242
+ # (a step in _waiting_to_retry under a delayed RetryPolicy, or
243
+ # a pending concurrency claim), no worker is alive to emit an
244
+ # event, so receive() would block forever while is_complete
245
+ # stays False. Bound the wait by sleep_interval() and re-poll,
246
+ # mirroring stock executors' sleep_til_ready() behavior, so the
247
+ # retry-ready step gets promoted by get_steps_to_execute().
248
+ sleep_interval = active.sleep_interval()
249
+ with anyio.move_on_after(
250
+ sleep_interval if sleep_interval > 0 else None
251
+ ) as scope:
242
252
  event = await recv_stream.receive()
243
- except anyio.EndOfStream:
244
- raise
253
+ if scope.cancelled_caught:
254
+ continue
245
255
 
246
256
  yield event
247
257
  active.handle_event(event)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dagster-async-executor
3
- Version: 0.0.2
3
+ Version: 0.0.4
4
4
  Summary: Async Support for Dagster
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -9,12 +9,12 @@ dependencies = [
9
9
  ]
10
10
  dynamic = ["version"]
11
11
 
12
- [tool.uv]
13
- dev-dependencies = [
12
+ [dependency-groups]
13
+ dev = [
14
14
  "ruff",
15
15
  "pytest",
16
- "pyright>=1.1.386",
17
- "pytest",
16
+ "pytest-timeout",
17
+ "ty==0.0.37",
18
18
  ]
19
19
 
20
20
  [build-system]