dirigent-plugin 0.20.0__tar.gz → 0.21.0__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.
- {dirigent_plugin-0.20.0 → dirigent_plugin-0.21.0}/PKG-INFO +2 -2
- {dirigent_plugin-0.20.0 → dirigent_plugin-0.21.0}/pyproject.toml +2 -2
- {dirigent_plugin-0.20.0 → dirigent_plugin-0.21.0}/pyproject.toml.orig +2 -2
- {dirigent_plugin-0.20.0 → dirigent_plugin-0.21.0}/src/dirigent_plugin/blocks.py +16 -3
- {dirigent_plugin-0.20.0 → dirigent_plugin-0.21.0}/LICENSE +0 -0
- {dirigent_plugin-0.20.0 → dirigent_plugin-0.21.0}/README.md +0 -0
- {dirigent_plugin-0.20.0 → dirigent_plugin-0.21.0}/src/dirigent_plugin/__init__.py +0 -0
- {dirigent_plugin-0.20.0 → dirigent_plugin-0.21.0}/src/dirigent_plugin/markers.py +0 -0
- {dirigent_plugin-0.20.0 → dirigent_plugin-0.21.0}/src/dirigent_plugin/messages.py +0 -0
- {dirigent_plugin-0.20.0 → dirigent_plugin-0.21.0}/src/dirigent_plugin/py.typed +0 -0
- {dirigent_plugin-0.20.0 → dirigent_plugin-0.21.0}/src/dirigent_plugin/runners.py +0 -0
- {dirigent_plugin-0.20.0 → dirigent_plugin-0.21.0}/src/dirigent_plugin/transforms.py +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dirigent-plugin
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.21.0
|
|
4
4
|
Summary: The dirigent plugin contract: block specs, protocols, and markers.
|
|
5
5
|
License-Expression: LicenseRef-Proprietary
|
|
6
6
|
License-File: LICENSE
|
|
7
7
|
Classifier: Programming Language :: Python :: 3
|
|
8
8
|
Classifier: Programming Language :: Python :: 3.13
|
|
9
|
-
Requires-Dist: dirigent-common==0.
|
|
9
|
+
Requires-Dist: dirigent-common==0.21.0
|
|
10
10
|
Requires-Dist: httpx2>=2.12.0
|
|
11
11
|
Requires-Dist: pluginkit>=0.5.0
|
|
12
12
|
Requires-Dist: pydantic>=2.13.5
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "dirigent-plugin"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.21.0"
|
|
4
4
|
description = "The dirigent plugin contract: block specs, protocols, and markers."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.13"
|
|
@@ -11,7 +11,7 @@ classifiers = [
|
|
|
11
11
|
"Programming Language :: Python :: 3.13",
|
|
12
12
|
]
|
|
13
13
|
dependencies = [
|
|
14
|
-
"dirigent-common==0.
|
|
14
|
+
"dirigent-common==0.21.0",
|
|
15
15
|
"httpx2>=2.12.0",
|
|
16
16
|
"pluginkit>=0.5.0",
|
|
17
17
|
"pydantic>=2.13.5",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "dirigent-plugin"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.21.0"
|
|
4
4
|
description = "The dirigent plugin contract: block specs, protocols, and markers."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.13"
|
|
@@ -11,7 +11,7 @@ classifiers = [
|
|
|
11
11
|
"Programming Language :: Python :: 3.13",
|
|
12
12
|
]
|
|
13
13
|
dependencies = [
|
|
14
|
-
"dirigent-common==0.
|
|
14
|
+
"dirigent-common==0.21.0",
|
|
15
15
|
"httpx2>=2.12.0",
|
|
16
16
|
"pluginkit>=0.5.0",
|
|
17
17
|
"pydantic>=2.13.5",
|
|
@@ -280,8 +280,9 @@ class NotYet(BaseModel):
|
|
|
280
280
|
worker that dies before that commit leaves the older cursor for the next poke to read
|
|
281
281
|
from again. So a poke must tolerate reading the same ground twice.
|
|
282
282
|
|
|
283
|
-
The cursor's life is the waiting attempt. A poke that succeeds ends the step, and
|
|
284
|
-
|
|
283
|
+
The cursor's life is the waiting attempt. A poke that succeeds ends the step, and only
|
|
284
|
+
:meth:`Sensor.resume_cursor` carries a cursor past it: a watch hands what that returns to
|
|
285
|
+
the first poke of the run it arms next.
|
|
285
286
|
"""
|
|
286
287
|
|
|
287
288
|
|
|
@@ -551,7 +552,9 @@ class StepContext(Protocol):
|
|
|
551
552
|
cursor: JsonMap | None
|
|
552
553
|
"""The cursor the last committed :class:`NotYet` returned, and None on the first poke.
|
|
553
554
|
|
|
554
|
-
|
|
555
|
+
The first poke of a run a watch armed is handed where the watch's last success left off
|
|
556
|
+
instead, which is what :meth:`Sensor.resume_cursor` returned. Only a sensor's poke reads
|
|
557
|
+
it; every other call sees None.
|
|
555
558
|
"""
|
|
556
559
|
|
|
557
560
|
def connection[C: BaseModel](self, ref: ConnectionRef, model: type[C]) -> C:
|
|
@@ -682,6 +685,16 @@ class Sensor[ConfigT: BaseModel, OutputT: BaseModel](ABC):
|
|
|
682
685
|
"""Observe the world once, read-only and briefly; NotYet is not a failure."""
|
|
683
686
|
...
|
|
684
687
|
|
|
688
|
+
def resume_cursor(self, output: OutputT) -> JsonMap | None:
|
|
689
|
+
"""Say where a poke that succeeded left off, read from the output it succeeded with.
|
|
690
|
+
|
|
691
|
+
A watch stores what this returns and hands it to the first poke of the next run it
|
|
692
|
+
arms as ``ctx.cursor``. None, the default, starts every run fresh. It is stored in the
|
|
693
|
+
transaction that settles the step, so it is only as far along as the last success that
|
|
694
|
+
committed, and the next poke may read that ground again.
|
|
695
|
+
"""
|
|
696
|
+
return None
|
|
697
|
+
|
|
685
698
|
def check_config(self, config: BaseModel) -> list[Issue]:
|
|
686
699
|
"""List the extra refusals this block makes at apply, beyond what its schema says.
|
|
687
700
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|