labcode 0.3.1__py3-none-any.whl → 0.4.0__py3-none-any.whl

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/run_cli.py CHANGED
@@ -65,6 +65,13 @@ def _build_parser() -> argparse.ArgumentParser:
65
65
  "--margin", type=int, default=None, metavar="M",
66
66
  help="running-task margin for replans (default: the poll interval)",
67
67
  )
68
+ p.add_argument(
69
+ "--max-transport-legs", type=int, default=1, metavar="N",
70
+ help="how many transport activities one Object-bearing arc may be carried in "
71
+ "(default 1: the single hop), joined by relays -- raise it for an "
72
+ "instrument the transporter reaches at one position only, or a plate "
73
+ "that has to cross a hand-off station",
74
+ )
68
75
  p.add_argument(
69
76
  "--poll-interval", type=int, default=1, metavar="D",
70
77
  help="poll every D time units (default 1)",
@@ -329,6 +336,11 @@ def main(argv: Sequence[str] | None = None) -> int:
329
336
  running_task_margin=args.margin,
330
337
  random_seed=args.seed,
331
338
  poll_interval=args.poll_interval,
339
+ # How many moves one arc may be carried in (schedule SPEC §6.4.1). Passed
340
+ # through rather than decided here: it is the scheduler's offer, and a real
341
+ # laboratory is exactly where an instrument reachable from one position
342
+ # only makes the single hop insufficient.
343
+ max_transport_legs=args.max_transport_legs,
332
344
  # 0 is "no limit" here as it is upstream; the runner spells that None.
333
345
  max_ticks=args.max_ticks or None,
334
346
  seconds_per_tick=args.seconds_per_tick,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: labcode
3
- Version: 0.3.1
3
+ Version: 0.4.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.6,>=0.5
25
- Requires-Dist: ofplang-run<0.7,>=0.6
24
+ Requires-Dist: ofplang-schedule<0.9,>=0.8
25
+ Requires-Dist: ofplang-run<0.8,>=0.7
26
26
  Provides-Extra: test
27
27
  Requires-Dist: pytest>=7.0; extra == "test"
28
28
  Requires-Dist: opentelemetry-sdk>=1.20; extra == "test"
@@ -143,7 +143,8 @@ described below.
143
143
  lc run <workflow> --env <env>
144
144
  [--boundary DOC] [-o OUT] [--boundary-out FILE] [--observation-out FILE]
145
145
  [--seconds-per-tick S] [--op-timeout S | --no-op-timeout] [--no-probe]
146
- [--ignore-resources] [--trace] [--mission-id ID] [--object-ids seeded|real]
146
+ [--max-transport-legs N] [--ignore-resources] [--trace] [--mission-id ID]
147
+ [--object-ids seeded|real]
147
148
  ```
148
149
 
149
150
  - `<workflow>` — the portable v0 workflow: *what* happens.
@@ -176,6 +177,15 @@ lc run <workflow> --env <env>
176
177
  else 7200 real seconds. The two forms exclude each other.
177
178
  - `--no-probe` — ignore the environment's `x-labcode.probe` policies and treat every
178
179
  machine as reachable (§1.6). The documents are still validated.
180
+ - `--max-transport-legs N` — how many transport activities one Object-bearing arc may
181
+ be carried in (schedule spec §6.4.1), joined by **relay** activities. It is 1 by
182
+ default: the single hop. Raise it where the transporter cannot reach an instrument
183
+ from where the plate is — a bench it serves from one position only, or a hand-off
184
+ station a plate has to cross — and the move is planned as the shortest chain between
185
+ the two spots instead of being reported unreachable. Only the fewest possible moves
186
+ are offered, so a plate one move away is never sent round by way of somewhere else.
187
+ This describes the laboratory's reach rather than tuning the loop, which is why it is
188
+ here and not among the replan knobs below.
179
189
  - `--ignore-resources` — switch the consumable model off. The environment's resource
180
190
  declarations are still checked for shape but none is applied, so a bench whose devices
181
191
  declare stocks nobody is tracking runs without the boundary saying what they held.
@@ -12,14 +12,14 @@ labcode/otel_sila2.py,sha256=t2H8x_jH2cysWRQ5joX6b8cqFDArALYcObEPTXHzepw,8612
12
12
  labcode/probe.py,sha256=niUm3qrHdKBq0DCbVTh3ThmBlIn0GIkx_zDSqKrPbfs,8305
13
13
  labcode/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  labcode/record.py,sha256=TuqalknpDeOkOCjfoLuW_8cSMGou9NZVJK7x1N-Z6kA,12094
15
- labcode/run_cli.py,sha256=_xMfQBDYTZnjyJcNC6Uh4lHpYYrANYa_N8CUr_gxPsc,18131
15
+ labcode/run_cli.py,sha256=7VUdOWoxdofbw5UI32UeWCH-sEPGHRHAjjau-bgLiZA,18897
16
16
  labcode/runner.py,sha256=Ux_gkgAxOepuKO9zRicoeCe-YG5ycKjqRd8BY14ovxk,11277
17
17
  labcode/sila2.py,sha256=jd_f2ARVvH96As5HCa9qAG6cDERPpsvjg_ZYioDyI7U,13477
18
18
  labcode/sila2_commands.py,sha256=oYuqUDUKcN5sxo2QvxtkNqRfvietrHkLg7Yqvcj1eZ4,5349
19
19
  labcode/sila2_instrument.py,sha256=Lne4AO257UfAHprh4Pmlqg8jVLng8haeJhMVfSfMfdE,24564
20
- labcode-0.3.1.dist-info/licenses/LICENSE,sha256=weUnWoHlmaiawSjaLy_ECNpyTe7F5vDBfLGJKocpUhI,1071
21
- labcode-0.3.1.dist-info/METADATA,sha256=0u6xe1VUuZaKn3fPm7TQuldsIgDRPfW3Zil7MJ765Yg,16186
22
- labcode-0.3.1.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
23
- labcode-0.3.1.dist-info/entry_points.txt,sha256=eP2fNwGx6ZYNJ_AWzGZhiDJaPqeqaA0iZAc-Tae1PGQ,40
24
- labcode-0.3.1.dist-info/top_level.txt,sha256=7WhrsXy6psZ8TDzksIEEuj2q93GeXWkHL9h1RbdBrJg,8
25
- labcode-0.3.1.dist-info/RECORD,,
20
+ labcode-0.4.0.dist-info/licenses/LICENSE,sha256=weUnWoHlmaiawSjaLy_ECNpyTe7F5vDBfLGJKocpUhI,1071
21
+ labcode-0.4.0.dist-info/METADATA,sha256=yuxDVZ9Wg58EwEl2YV4mGFr7Qo7k624uaTpVKQMOKTc,16952
22
+ labcode-0.4.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
23
+ labcode-0.4.0.dist-info/entry_points.txt,sha256=eP2fNwGx6ZYNJ_AWzGZhiDJaPqeqaA0iZAc-Tae1PGQ,40
24
+ labcode-0.4.0.dist-info/top_level.txt,sha256=7WhrsXy6psZ8TDzksIEEuj2q93GeXWkHL9h1RbdBrJg,8
25
+ labcode-0.4.0.dist-info/RECORD,,