dirigent-core 0.23.0__tar.gz → 0.23.2__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 (61) hide show
  1. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/PKG-INFO +5 -5
  2. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/pyproject.toml +5 -5
  3. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/pyproject.toml.orig +5 -5
  4. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/engine/claim.py +1 -3
  5. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/migrations.py +3 -1
  6. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/reporting.py +1 -1
  7. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/LICENSE +0 -0
  8. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/README.md +0 -0
  9. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/__init__.py +0 -0
  10. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/alembic/env.py +0 -0
  11. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/alembic/script.py.mako +0 -0
  12. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/alembic/versions/0001_baseline_schema.py +0 -0
  13. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/alerting.py +0 -0
  14. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/artifacts.py +0 -0
  15. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/auth.py +0 -0
  16. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/blockdocs.py +0 -0
  17. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/config.py +0 -0
  18. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/configdocs.py +0 -0
  19. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/database.py +0 -0
  20. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/directory.py +0 -0
  21. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/documents.py +0 -0
  22. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/documentschema.py +0 -0
  23. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/engine/__init__.py +0 -0
  24. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/engine/context.py +0 -0
  25. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/engine/definition.py +0 -0
  26. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/engine/executor.py +0 -0
  27. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/engine/expansion.py +0 -0
  28. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/engine/failure.py +0 -0
  29. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/engine/recovery.py +0 -0
  30. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/engine/references.py +0 -0
  31. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/engine/runs.py +0 -0
  32. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/engine/services.py +0 -0
  33. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/engine/state.py +0 -0
  34. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/errors.py +0 -0
  35. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/examples.py +0 -0
  36. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/ids.py +0 -0
  37. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/logging.py +0 -0
  38. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/messages.py +0 -0
  39. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/models.py +0 -0
  40. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/pipelines.py +0 -0
  41. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/plugins.py +0 -0
  42. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/protocol.py +0 -0
  43. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/py.typed +0 -0
  44. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/ratelimit.py +0 -0
  45. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/registry.py +0 -0
  46. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/retention.py +0 -0
  47. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/scheduler.py +0 -0
  48. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/schemas.py +0 -0
  49. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/secrets.py +0 -0
  50. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/storage.py +0 -0
  51. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/telemetry.py +0 -0
  52. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/trigger_documents.py +0 -0
  53. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/triggers/__init__.py +0 -0
  54. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/triggers/backfill.py +0 -0
  55. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/triggers/materialize.py +0 -0
  56. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/triggers/schedules.py +0 -0
  57. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/triggers/watches.py +0 -0
  58. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/triggers/webhooks.py +0 -0
  59. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/types.py +0 -0
  60. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/wakeups.py +0 -0
  61. {dirigent_core-0.23.0 → dirigent_core-0.23.2}/src/dirigent_core/worker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dirigent-core
3
- Version: 0.23.0
3
+ Version: 0.23.2
4
4
  Summary: Dirigent engine core: schema, configuration, and plugin host.
5
5
  License-Expression: LicenseRef-Proprietary
6
6
  License-File: LICENSE
@@ -12,14 +12,14 @@ Requires-Dist: argon2-cffi>=25.1.0
12
12
  Requires-Dist: asyncpg>=0.31.0
13
13
  Requires-Dist: cronsim>=2.7
14
14
  Requires-Dist: cryptography>=46.0.5
15
- Requires-Dist: dirigent-client==0.23.0
16
- Requires-Dist: dirigent-common==0.23.0
17
- Requires-Dist: dirigent-plugin==0.23.0
15
+ Requires-Dist: dirigent-client==0.23.2
16
+ Requires-Dist: dirigent-common==0.23.2
17
+ Requires-Dist: dirigent-plugin==0.23.2
18
18
  Requires-Dist: jsonschema>=4.26.0
19
19
  Requires-Dist: opentelemetry-api>=1.44.0
20
20
  Requires-Dist: pydantic-settings>=2.15.0
21
21
  Requires-Dist: pyyaml>=6.0.3
22
- Requires-Dist: sqlalchemy[asyncio]>=2.0.52
22
+ Requires-Dist: sqlalchemy[asyncio]>=2.1.3
23
23
  Requires-Dist: structlog>=25.5.0
24
24
  Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.44.0 ; extra == 'otlp'
25
25
  Requires-Python: >=3.13
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "dirigent-core"
3
- version = "0.23.0"
3
+ version = "0.23.2"
4
4
  description = "Dirigent engine core: schema, configuration, and plugin host."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13"
@@ -17,14 +17,14 @@ dependencies = [
17
17
  "asyncpg>=0.31.0",
18
18
  "cronsim>=2.7",
19
19
  "cryptography>=46.0.5",
20
- "dirigent-client==0.23.0",
21
- "dirigent-common==0.23.0",
22
- "dirigent-plugin==0.23.0",
20
+ "dirigent-client==0.23.2",
21
+ "dirigent-common==0.23.2",
22
+ "dirigent-plugin==0.23.2",
23
23
  "jsonschema>=4.26.0",
24
24
  "opentelemetry-api>=1.44.0",
25
25
  "pydantic-settings>=2.15.0",
26
26
  "pyyaml>=6.0.3",
27
- "sqlalchemy[asyncio]>=2.0.52",
27
+ "sqlalchemy[asyncio]>=2.1.3",
28
28
  "structlog>=25.5.0",
29
29
  ]
30
30
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "dirigent-core"
3
- version = "0.23.0"
3
+ version = "0.23.2"
4
4
  description = "Dirigent engine core: schema, configuration, and plugin host."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13"
@@ -17,14 +17,14 @@ dependencies = [
17
17
  "asyncpg>=0.31.0",
18
18
  "cronsim>=2.7",
19
19
  "cryptography>=46.0.5",
20
- "dirigent-client==0.23.0",
21
- "dirigent-common==0.23.0",
22
- "dirigent-plugin==0.23.0",
20
+ "dirigent-client==0.23.2",
21
+ "dirigent-common==0.23.2",
22
+ "dirigent-plugin==0.23.2",
23
23
  "jsonschema>=4.26.0",
24
24
  "opentelemetry-api>=1.44.0",
25
25
  "pydantic-settings>=2.15.0",
26
26
  "pyyaml>=6.0.3",
27
- "sqlalchemy[asyncio]>=2.0.52",
27
+ "sqlalchemy[asyncio]>=2.1.3",
28
28
  "structlog>=25.5.0",
29
29
  ]
30
30
 
@@ -107,9 +107,7 @@ def priority_rank() -> sa.Case[int]:
107
107
  )
108
108
 
109
109
 
110
- def due_attempt_statement(
111
- now: datetime, tags: Sequence[str] = (), *, postgres: bool = False
112
- ) -> sa.Select[tuple[StepAttempt]]:
110
+ def due_attempt_statement(now: datetime, tags: Sequence[str] = (), *, postgres: bool = False) -> sa.Select[StepAttempt]:
113
111
  """Build the select that finds the next due unit of work this worker may run.
114
112
 
115
113
  The order is priority first, then fairness, then due time. Fairness is round-robin
@@ -178,7 +178,9 @@ def _named(difference: tuple[Any, ...]) -> SchemaDifference | None:
178
178
  if what.startswith("modify_"):
179
179
  return SchemaDifference(kind=DifferenceKind.CHANGED, table=difference[2], column=difference[3])
180
180
  element = difference[1]
181
- table = element if isinstance(element, sa.Table) else getattr(element, "table", None)
181
+ if isinstance(element, sa.Table):
182
+ return SchemaDifference(kind=DifferenceKind.CHANGED, table=element.name)
183
+ table = getattr(element, "table", None)
182
184
  return None if table is None else SchemaDifference(kind=DifferenceKind.CHANGED, table=table.name)
183
185
 
184
186
 
@@ -130,7 +130,7 @@ class RunFacts(BaseModel):
130
130
  async def attempts_in_order(session: AsyncSession, run_id: UUID, step_order: Sequence[str] = ()) -> list[StepAttempt]:
131
131
  """Read every attempt of a run, in the order they ran."""
132
132
  rows = await session.execute(
133
- sa.select(StepAttempt, RunItem.item_index)
133
+ sa.select(StepAttempt, sa.Nullable(RunItem.item_index))
134
134
  .outerjoin(RunItem, RunItem.id == StepAttempt.run_item_id)
135
135
  .where(StepAttempt.run_id == run_id)
136
136
  )
File without changes
File without changes