labcode 0.4.0__tar.gz → 0.6.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.
Files changed (89) hide show
  1. {labcode-0.4.0 → labcode-0.6.0}/PKG-INFO +3 -3
  2. {labcode-0.4.0 → labcode-0.6.0}/labcode.egg-info/PKG-INFO +3 -3
  3. {labcode-0.4.0 → labcode-0.6.0}/labcode.egg-info/requires.txt +2 -2
  4. labcode-0.6.0/labcode.egg-info/scm_version.json +8 -0
  5. {labcode-0.4.0 → labcode-0.6.0}/pyproject.toml +18 -6
  6. labcode-0.4.0/labcode.egg-info/scm_version.json +0 -8
  7. {labcode-0.4.0 → labcode-0.6.0}/.github/workflows/ci.yml +0 -0
  8. {labcode-0.4.0 → labcode-0.6.0}/.github/workflows/publish.yml +0 -0
  9. {labcode-0.4.0 → labcode-0.6.0}/.gitignore +0 -0
  10. {labcode-0.4.0 → labcode-0.6.0}/LICENSE +0 -0
  11. {labcode-0.4.0 → labcode-0.6.0}/MANIFEST.in +0 -0
  12. {labcode-0.4.0 → labcode-0.6.0}/README.md +0 -0
  13. {labcode-0.4.0 → labcode-0.6.0}/SPECIFICATIONS.md +0 -0
  14. {labcode-0.4.0 → labcode-0.6.0}/examples/README.md +0 -0
  15. {labcode-0.4.0 → labcode-0.6.0}/examples/outputs/plate_line.boundary.yaml +0 -0
  16. {labcode-0.4.0 → labcode-0.6.0}/examples/outputs/plate_line.observation.yaml +0 -0
  17. {labcode-0.4.0 → labcode-0.6.0}/examples/outputs/plate_line.plan.yaml +0 -0
  18. {labcode-0.4.0 → labcode-0.6.0}/examples/outputs/plate_line.svg +0 -0
  19. {labcode-0.4.0 → labcode-0.6.0}/examples/outputs/sila2_plate_cycle.boundary.yaml +0 -0
  20. {labcode-0.4.0 → labcode-0.6.0}/examples/outputs/sila2_plate_cycle.observation.yaml +0 -0
  21. {labcode-0.4.0 → labcode-0.6.0}/examples/outputs/sila2_plate_cycle.plan.yaml +0 -0
  22. {labcode-0.4.0 → labcode-0.6.0}/examples/outputs/sila2_plate_cycle.svg +0 -0
  23. {labcode-0.4.0 → labcode-0.6.0}/examples/plate_line.boundary.yaml +0 -0
  24. {labcode-0.4.0 → labcode-0.6.0}/examples/plate_line.env.yaml +0 -0
  25. {labcode-0.4.0 → labcode-0.6.0}/examples/plate_line.workflow.yaml +0 -0
  26. {labcode-0.4.0 → labcode-0.6.0}/examples/preflight_sila2_env.py +0 -0
  27. {labcode-0.4.0 → labcode-0.6.0}/examples/render_plate_line.py +0 -0
  28. {labcode-0.4.0 → labcode-0.6.0}/examples/render_sila2_plate_cycle.py +0 -0
  29. {labcode-0.4.0 → labcode-0.6.0}/examples/run_all_sila2_examples.py +0 -0
  30. {labcode-0.4.0 → labcode-0.6.0}/examples/run_sila2_plate_cycle.py +0 -0
  31. {labcode-0.4.0 → labcode-0.6.0}/examples/run_sila2_plate_cycle_no_atc.py +0 -0
  32. {labcode-0.4.0 → labcode-0.6.0}/examples/run_sila2_seal.py +0 -0
  33. {labcode-0.4.0 → labcode-0.6.0}/examples/sila2_plate_cycle.boundary.yaml +0 -0
  34. {labcode-0.4.0 → labcode-0.6.0}/examples/sila2_plate_cycle.workflow.yaml +0 -0
  35. {labcode-0.4.0 → labcode-0.6.0}/examples/sila2_plate_cycle.wrapped.env.yaml +0 -0
  36. {labcode-0.4.0 → labcode-0.6.0}/examples/sila2_plate_cycle_no_atc.boundary.yaml +0 -0
  37. {labcode-0.4.0 → labcode-0.6.0}/examples/sila2_plate_cycle_no_atc.workflow.yaml +0 -0
  38. {labcode-0.4.0 → labcode-0.6.0}/examples/sila2_plate_cycle_no_atc.wrapped.env.yaml +0 -0
  39. {labcode-0.4.0 → labcode-0.6.0}/examples/sila2_seal.boundary.yaml +0 -0
  40. {labcode-0.4.0 → labcode-0.6.0}/examples/sila2_seal.env.yaml +0 -0
  41. {labcode-0.4.0 → labcode-0.6.0}/examples/sila2_seal.workflow.yaml +0 -0
  42. {labcode-0.4.0 → labcode-0.6.0}/examples/sila2_seal.wrapped.env.yaml +0 -0
  43. {labcode-0.4.0 → labcode-0.6.0}/labcode/__init__.py +0 -0
  44. {labcode-0.4.0 → labcode-0.6.0}/labcode/__main__.py +0 -0
  45. {labcode-0.4.0 → labcode-0.6.0}/labcode/_child.py +0 -0
  46. {labcode-0.4.0 → labcode-0.6.0}/labcode/backend.py +0 -0
  47. {labcode-0.4.0 → labcode-0.6.0}/labcode/cli.py +0 -0
  48. {labcode-0.4.0 → labcode-0.6.0}/labcode/dialect.py +0 -0
  49. {labcode-0.4.0 → labcode-0.6.0}/labcode/extension.py +0 -0
  50. {labcode-0.4.0 → labcode-0.6.0}/labcode/idgen.py +0 -0
  51. {labcode-0.4.0 → labcode-0.6.0}/labcode/objectid.py +0 -0
  52. {labcode-0.4.0 → labcode-0.6.0}/labcode/otel.py +0 -0
  53. {labcode-0.4.0 → labcode-0.6.0}/labcode/otel_sila2.py +0 -0
  54. {labcode-0.4.0 → labcode-0.6.0}/labcode/probe.py +0 -0
  55. {labcode-0.4.0 → labcode-0.6.0}/labcode/py.typed +0 -0
  56. {labcode-0.4.0 → labcode-0.6.0}/labcode/record.py +0 -0
  57. {labcode-0.4.0 → labcode-0.6.0}/labcode/run_cli.py +0 -0
  58. {labcode-0.4.0 → labcode-0.6.0}/labcode/runner.py +0 -0
  59. {labcode-0.4.0 → labcode-0.6.0}/labcode/sila2.py +0 -0
  60. {labcode-0.4.0 → labcode-0.6.0}/labcode/sila2_commands.py +0 -0
  61. {labcode-0.4.0 → labcode-0.6.0}/labcode/sila2_instrument.py +0 -0
  62. {labcode-0.4.0 → labcode-0.6.0}/labcode.egg-info/SOURCES.txt +0 -0
  63. {labcode-0.4.0 → labcode-0.6.0}/labcode.egg-info/dependency_links.txt +0 -0
  64. {labcode-0.4.0 → labcode-0.6.0}/labcode.egg-info/entry_points.txt +0 -0
  65. {labcode-0.4.0 → labcode-0.6.0}/labcode.egg-info/scm_file_list.json +0 -0
  66. {labcode-0.4.0 → labcode-0.6.0}/labcode.egg-info/top_level.txt +0 -0
  67. {labcode-0.4.0 → labcode-0.6.0}/setup.cfg +0 -0
  68. {labcode-0.4.0 → labcode-0.6.0}/tests/fixtures/device_script.env.yaml +0 -0
  69. {labcode-0.4.0 → labcode-0.6.0}/tests/fixtures/device_script.workflow.yaml +0 -0
  70. {labcode-0.4.0 → labcode-0.6.0}/tests/fixtures/replenishment.env.yaml +0 -0
  71. {labcode-0.4.0 → labcode-0.6.0}/tests/fixtures/reroute_device.env.yaml +0 -0
  72. {labcode-0.4.0 → labcode-0.6.0}/tests/fixtures/reroute_transporter.env.yaml +0 -0
  73. {labcode-0.4.0 → labcode-0.6.0}/tests/fixtures/transport.env.yaml +0 -0
  74. {labcode-0.4.0 → labcode-0.6.0}/tests/fixtures/transport.workflow.yaml +0 -0
  75. {labcode-0.4.0 → labcode-0.6.0}/tests/test_backend.py +0 -0
  76. {labcode-0.4.0 → labcode-0.6.0}/tests/test_cli.py +0 -0
  77. {labcode-0.4.0 → labcode-0.6.0}/tests/test_dialect.py +0 -0
  78. {labcode-0.4.0 → labcode-0.6.0}/tests/test_objectid.py +0 -0
  79. {labcode-0.4.0 → labcode-0.6.0}/tests/test_otel.py +0 -0
  80. {labcode-0.4.0 → labcode-0.6.0}/tests/test_otel_child.py +0 -0
  81. {labcode-0.4.0 → labcode-0.6.0}/tests/test_otel_grpc.py +0 -0
  82. {labcode-0.4.0 → labcode-0.6.0}/tests/test_otel_sila2.py +0 -0
  83. {labcode-0.4.0 → labcode-0.6.0}/tests/test_probe.py +0 -0
  84. {labcode-0.4.0 → labcode-0.6.0}/tests/test_record.py +0 -0
  85. {labcode-0.4.0 → labcode-0.6.0}/tests/test_recording.py +0 -0
  86. {labcode-0.4.0 → labcode-0.6.0}/tests/test_run_cli.py +0 -0
  87. {labcode-0.4.0 → labcode-0.6.0}/tests/test_sila2.py +0 -0
  88. {labcode-0.4.0 → labcode-0.6.0}/tests/test_sila2_commands.py +0 -0
  89. {labcode-0.4.0 → labcode-0.6.0}/tests/test_sila2_instrument.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: labcode
3
- Version: 0.4.0
3
+ Version: 0.6.0
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.3,>=0.2
24
- Requires-Dist: ofplang-schedule<0.9,>=0.8
25
- Requires-Dist: ofplang-run<0.8,>=0.7
24
+ Requires-Dist: ofplang-schedule<0.11,>=0.9
25
+ Requires-Dist: ofplang-run<0.10,>=0.8
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.4.0
3
+ Version: 0.6.0
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.3,>=0.2
24
- Requires-Dist: ofplang-schedule<0.9,>=0.8
25
- Requires-Dist: ofplang-run<0.8,>=0.7
24
+ Requires-Dist: ofplang-schedule<0.11,>=0.9
25
+ Requires-Dist: ofplang-run<0.10,>=0.8
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
  ofplang-validate<0.3,>=0.2
2
- ofplang-schedule<0.9,>=0.8
3
- ofplang-run<0.8,>=0.7
2
+ ofplang-schedule<0.11,>=0.9
3
+ ofplang-run<0.10,>=0.8
4
4
 
5
5
  [dev]
6
6
  pytest>=7.0
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.6.0",
3
+ "distance": 0,
4
+ "node": "g9788ffa864178c0e21165cd62fcd0ddfb48ac2cc",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-09-15"
8
+ }
@@ -41,10 +41,16 @@ classifiers = [
41
41
  # `dispatch_replenishment` seam and the `kind: replenishment` the child harness has to
42
42
  # recognise as side-effect only.
43
43
  #
44
- # `ofplang-schedule>=0.8` is required, not merely tested against: `lc run` passes
45
- # `--max-transport-legs` through to it (schedule SPEC §6.4.1), and a job may leave a
46
- # running plan (§6.11), which needs the `withdraw` argument and the levels carried
47
- # forward with it. The `>=0.5` floor it replaces was required because an environment may
44
+ # `ofplang-schedule>=0.9` and `ofplang-run>=0.8` are required together, not merely
45
+ # tested against: the runner now carries the plan itself from one replan to the next
46
+ # instead of rebuilding a status, and the scheduler is what makes that possible -- it
47
+ # derives what a stopped job is still holding rather than being told, takes
48
+ # `carry_levels_to_now` so a departing job's draws are not handed back, and replans a
49
+ # pending refill rather than refusing the document carrying one. Pairing an older
50
+ # scheduler with this runner has every replan refused, and a refused replan stops
51
+ # every job of the run. The `>=0.8` floor it replaces was required because `lc run`
52
+ # passes `--max-transport-legs` through (schedule SPEC §6.4.1) and a job may leave a
53
+ # running plan (§6.11). The `>=0.5` floor before that was required because an environment may
48
54
  # declare a route that needs no transporter (`transporter: null`, schedule §4.6/§5.4) and
49
55
  # this dialect accepts a `sila2` script on one, but an older scheduler refuses the
50
56
  # environment with `wrong_type` before there is a plan to run -- and `ofplang-run>=0.6` is
@@ -55,6 +61,12 @@ classifiers = [
55
61
  # workflow acceptance of 0.1.3. CI resolves the siblings from PyPI, so every run of this suite and
56
62
  # every real-lab example already happens on it, and run's own floor requires it anyway
57
63
  # (an older scheduler reports a running refill free before it is).
64
+ #
65
+ # 🔴 The `<0.11` / `<0.10` bounds are bounds, not floors. schedule 0.10 refuses two jobs
66
+ # binding one boundary spot where it used to warn, and run 0.9 records a backend's
67
+ # refusal as the activity failing instead of letting it escape `run()`. Both change what
68
+ # happens to a document or a run this package hands over, not anything this package
69
+ # calls, so the floors stay where they are and only the bounds move to admit them.
58
70
  dependencies = [
59
71
  # Upper bounds are deliberate. A sibling's minor version is where a
60
72
  # specification revision lands, and a revision may reject documents an earlier one
@@ -64,8 +76,8 @@ dependencies = [
64
76
  # bounds cannot protect what is already on PyPI without one, which is why they go
65
77
  # in now rather than at the first breakage.
66
78
  "ofplang-validate>=0.2,<0.3",
67
- "ofplang-schedule>=0.8,<0.9",
68
- "ofplang-run>=0.7,<0.8",
79
+ "ofplang-schedule>=0.9,<0.11",
80
+ "ofplang-run>=0.8,<0.10",
69
81
  ]
70
82
 
71
83
  [project.urls]
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "0.4.0",
3
- "distance": 0,
4
- "node": "ge84abdb92eead9230494348c19d0e418605aaecb",
5
- "dirty": false,
6
- "branch": "HEAD",
7
- "node_date": "2026-09-11"
8
- }
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