labcode 0.10.2__tar.gz → 0.10.3__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.
- {labcode-0.10.2 → labcode-0.10.3}/CHANGELOG.md +16 -0
- {labcode-0.10.2 → labcode-0.10.3}/PKG-INFO +3 -3
- {labcode-0.10.2 → labcode-0.10.3}/labcode.egg-info/PKG-INFO +3 -3
- {labcode-0.10.2 → labcode-0.10.3}/labcode.egg-info/requires.txt +2 -2
- labcode-0.10.3/labcode.egg-info/scm_version.json +8 -0
- {labcode-0.10.2 → labcode-0.10.3}/pyproject.toml +7 -3
- labcode-0.10.2/labcode.egg-info/scm_version.json +0 -8
- {labcode-0.10.2 → labcode-0.10.3}/.github/workflows/ci.yml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/.github/workflows/publish.yml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/.gitignore +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/LICENSE +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/MANIFEST.in +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/README.md +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/docs/SPECIFICATIONS.md +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/README.md +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/lads_plate_cycle.env.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/lads_seal.env.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/outputs/plate_line.boundary.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/outputs/plate_line.observation.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/outputs/plate_line.plan.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/outputs/plate_line.svg +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/outputs/shared_bench.boundary.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/outputs/shared_bench.observation.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/outputs/shared_bench.plan.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/outputs/shared_bench.svg +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/outputs/sila2_plate_cycle.boundary.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/outputs/sila2_plate_cycle.observation.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/outputs/sila2_plate_cycle.plan.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/outputs/sila2_plate_cycle.svg +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/plate_line.boundary.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/plate_line.env.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/plate_line.workflow.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/preflight_sila2_env.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/render_plate_line.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/render_shared_bench.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/render_sila2_plate_cycle.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/run_all_lads_examples.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/run_all_sila2_examples.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/run_sila2_plate_cycle.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/run_sila2_plate_cycle_no_atc.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/run_sila2_seal.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/shared_bench.afternoon.boundary.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/shared_bench.env.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/shared_bench.morning.boundary.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/shared_bench.run.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/shared_bench.workflow.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/sila2_plate_cycle.boundary.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/sila2_plate_cycle.workflow.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/sila2_plate_cycle.wrapped.env.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/sila2_plate_cycle_no_atc.boundary.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/sila2_plate_cycle_no_atc.workflow.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/sila2_plate_cycle_no_atc.wrapped.env.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/sila2_seal.boundary.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/sila2_seal.env.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/sila2_seal.workflow.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/examples/sila2_seal.wrapped.env.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/__init__.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/__main__.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/_child.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/backend.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/cli.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/connections.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/dialect.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/extension.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/idgen.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/lads.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/lads_commands.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/lads_unit.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/objectid.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/otel.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/otel_sila2.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/probe.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/py.typed +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/record.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/run_cli.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/runner.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/sila2.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/sila2_commands.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode/sila2_instrument.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode.egg-info/SOURCES.txt +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode.egg-info/dependency_links.txt +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode.egg-info/entry_points.txt +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode.egg-info/scm_file_list.json +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/labcode.egg-info/top_level.txt +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/setup.cfg +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/fixtures/device_script.env.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/fixtures/device_script.workflow.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/fixtures/dispense_read.workflow.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/fixtures/joint.run.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/fixtures/replenishment.env.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/fixtures/reroute_device.env.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/fixtures/reroute_transporter.env.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/fixtures/transport.env.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/fixtures/transport.workflow.yaml +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_backend.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_cli.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_dialect.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_joint.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_lads.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_lads_unit.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_objectid.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_otel.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_otel_child.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_otel_grpc.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_otel_sila2.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_probe.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_record.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_recording.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_run_cli.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_sila2.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_sila2_commands.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_sila2_instrument.py +0 -0
- {labcode-0.10.2 → labcode-0.10.3}/tests/test_structured_labcode.py +0 -0
|
@@ -6,6 +6,22 @@ specification the section numbers refer to is [`docs/SPECIFICATIONS.md`](docs/SP
|
|
|
6
6
|
Releases before 0.9.0 are described in the messages of their `Release vX.Y.Z` commits
|
|
7
7
|
(`git log --grep '^Release v'`).
|
|
8
8
|
|
|
9
|
+
## 0.10.3 — 2026-10-08
|
|
10
|
+
|
|
11
|
+
No code changes; the siblings move.
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- **A `branch` runs where the boundary decides its arm.** A branch whose condition is
|
|
16
|
+
an entry input -- a flag, or one flag per element inside a `map` -- runs the arm the
|
|
17
|
+
flag picks: the runner states each arm in the document's `expansion.arms`
|
|
18
|
+
(ofplang-schedule SPEC §6.13) and the scheduler expands the branch with it
|
|
19
|
+
(ofplang-schedule 0.15, ofplang-run 0.15). A flag left out is `false` and reported
|
|
20
|
+
(`entry_input_defaulted`). A branch whose condition is produced during the run is
|
|
21
|
+
refused before anything runs (`branch_arm_unknown`).
|
|
22
|
+
|
|
23
|
+
Requires ofplang-schedule 0.15 and ofplang-run 0.15 (ofplang-validate 0.4.1 as before).
|
|
24
|
+
|
|
9
25
|
## 0.10.2 — 2026-10-07
|
|
10
26
|
|
|
11
27
|
No code changes; the siblings move.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: labcode
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.3
|
|
4
4
|
Summary: labcode -- a dialect wrapper over the Object-Flow Programming Language toolchain
|
|
5
5
|
Author-email: Kazunari Kaizu <kwaizu@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -21,8 +21,8 @@ Requires-Python: >=3.10
|
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
22
22
|
License-File: LICENSE
|
|
23
23
|
Requires-Dist: ofplang-validate<0.5,>=0.4.1
|
|
24
|
-
Requires-Dist: ofplang-schedule<0.
|
|
25
|
-
Requires-Dist: ofplang-run<0.
|
|
24
|
+
Requires-Dist: ofplang-schedule<0.16,>=0.15
|
|
25
|
+
Requires-Dist: ofplang-run<0.16,>=0.15
|
|
26
26
|
Provides-Extra: test
|
|
27
27
|
Requires-Dist: pytest>=7.0; extra == "test"
|
|
28
28
|
Requires-Dist: opentelemetry-sdk>=1.20; extra == "test"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: labcode
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.3
|
|
4
4
|
Summary: labcode -- a dialect wrapper over the Object-Flow Programming Language toolchain
|
|
5
5
|
Author-email: Kazunari Kaizu <kwaizu@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -21,8 +21,8 @@ Requires-Python: >=3.10
|
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
22
22
|
License-File: LICENSE
|
|
23
23
|
Requires-Dist: ofplang-validate<0.5,>=0.4.1
|
|
24
|
-
Requires-Dist: ofplang-schedule<0.
|
|
25
|
-
Requires-Dist: ofplang-run<0.
|
|
24
|
+
Requires-Dist: ofplang-schedule<0.16,>=0.15
|
|
25
|
+
Requires-Dist: ofplang-run<0.16,>=0.15
|
|
26
26
|
Provides-Extra: test
|
|
27
27
|
Requires-Dist: pytest>=7.0; extra == "test"
|
|
28
28
|
Requires-Dist: opentelemetry-sdk>=1.20; extra == "test"
|
|
@@ -62,7 +62,11 @@ classifiers = [
|
|
|
62
62
|
# every real-lab example already happens on it, and run's own floor requires it anyway
|
|
63
63
|
# (an older scheduler reports a running refill free before it is).
|
|
64
64
|
#
|
|
65
|
-
# `ofplang-
|
|
65
|
+
# `ofplang-schedule>=0.15` and `ofplang-run>=0.15` move together: a `branch` whose arm
|
|
66
|
+
# the boundary decides runs from these (the run states each arm as the document's
|
|
67
|
+
# `expansion.arms`, the scheduler expands by it), and run 0.15 needs schedule 0.15.
|
|
68
|
+
#
|
|
69
|
+
# `ofplang-validate>=0.4.1`, `ofplang-schedule>=0.14.1` and `ofplang-run>=0.14.1` were
|
|
66
70
|
# required together. A `map` / `fold` over a list of values is planned and run from
|
|
67
71
|
# these (the run states each list's length as the document's `expansion`, the scheduler
|
|
68
72
|
# expands by it), and the front door and the scheduler's reader agree again on what a
|
|
@@ -104,8 +108,8 @@ dependencies = [
|
|
|
104
108
|
# bounds cannot protect what is already on PyPI without one, which is why they go
|
|
105
109
|
# in now rather than at the first breakage.
|
|
106
110
|
"ofplang-validate>=0.4.1,<0.5",
|
|
107
|
-
"ofplang-schedule>=0.
|
|
108
|
-
"ofplang-run>=0.
|
|
111
|
+
"ofplang-schedule>=0.15,<0.16",
|
|
112
|
+
"ofplang-run>=0.15,<0.16",
|
|
109
113
|
]
|
|
110
114
|
|
|
111
115
|
[project.urls]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|