.gitignore
LICENSE
README.md
pyproject.toml
.github/workflows/ci.yml
.github/workflows/publish.yml
docs/FORMULATION.md
docs/SPECIFICATIONS.md
examples/README.md
examples/gen_plate_batch.py
examples/interface_load.document.yaml
examples/interface_load.env.yaml
examples/interface_load.workflow.yaml
examples/reformatter.env.yaml
examples/reformatter.workflow.yaml
examples/reroute.env.yaml
examples/reroute.status.yaml
examples/reroute_chain.env.yaml
examples/reroute_chain.status.yaml
examples/reroute_stay.env.yaml
examples/reroute_stay.status.yaml
examples/simple.env.yaml
examples/simple.status.yaml
examples/simple.workflow.yaml
examples/two_arms.env.yaml
examples/two_arms.workflow.yaml
examples/outputs/plate_batch.device.svg
examples/outputs/plate_batch.env.yaml
examples/outputs/plate_batch.lane.svg
examples/outputs/plate_batch.plan.yaml
examples/outputs/plate_batch.workflow.svg
examples/outputs/plate_batch.workflow.yaml
examples/outputs/reformatter.device.svg
examples/outputs/reformatter.lane.svg
examples/outputs/reformatter.plan.yaml
examples/outputs/reformatter.workflow.svg
examples/outputs/reroute.replan.lane.svg
examples/outputs/reroute.replan.yaml
examples/outputs/reroute_chain.replan.lane.svg
examples/outputs/reroute_chain.replan.yaml
examples/outputs/reroute_stay.replan.lane.svg
examples/outputs/reroute_stay.replan.yaml
examples/outputs/simple.device.svg
examples/outputs/simple.lane.svg
examples/outputs/simple.plan.yaml
examples/outputs/simple.replan.lane.svg
examples/outputs/simple.replan.yaml
examples/outputs/simple.workflow.svg
examples/outputs/two_arms.device.svg
examples/outputs/two_arms.plan.yaml
ofplang/schedule/__init__.py
ofplang/schedule/__main__.py
ofplang/schedule/cli.py
ofplang/schedule/py.typed
ofplang/schedule/core/__init__.py
ofplang/schedule/core/diagnostics.py
ofplang/schedule/core/identifiers.py
ofplang/schedule/core/yamlnode.py
ofplang/schedule/scheduler/__init__.py
ofplang/schedule/scheduler/api.py
ofplang/schedule/scheduler/cpsat.py
ofplang/schedule/scheduler/envload.py
ofplang/schedule/scheduler/instance.py
ofplang/schedule/scheduler/model.py
ofplang/schedule/scheduler/normalize.py
ofplang/schedule/scheduler/plan.py
ofplang/schedule/scheduler/status.py
ofplang/schedule/scheduler/visualize.py
ofplang/schedule/scheduler/workflow.py
ofplang/schedule/validation/__init__.py
ofplang/schedule/validation/_shape.py
ofplang/schedule/validation/document.py
ofplang/schedule/validation/environment.py
ofplang/schedule/validation/errors.py
ofplang_schedule.egg-info/PKG-INFO
ofplang_schedule.egg-info/SOURCES.txt
ofplang_schedule.egg-info/dependency_links.txt
ofplang_schedule.egg-info/entry_points.txt
ofplang_schedule.egg-info/requires.txt
ofplang_schedule.egg-info/scm_file_list.json
ofplang_schedule.egg-info/scm_version.json
ofplang_schedule.egg-info/top_level.txt
tests/schedutil.py
tests/test_cli.py
tests/test_conformance.py
tests/test_cpsat.py
tests/test_envload.py
tests/test_example_makespans.py
tests/test_fold.py
tests/test_identifiers.py
tests/test_inplace.py
tests/test_instance.py
tests/test_interface.py
tests/test_normalize.py
tests/test_plan.py
tests/test_plate_batch.py
tests/test_pure_data.py
tests/test_replan.py
tests/test_replan_optimality.py
tests/test_reroute.py
tests/test_schedule_optimality.py
tests/test_visualize.py
tests/test_workflow.py
tests/conformance/README.md
tests/conformance/cases/doc/_baseline.yaml
tests/conformance/cases/doc/activity/end_before_start.expected.yaml
tests/conformance/cases/doc/activity/end_before_start.yaml
tests/conformance/cases/doc/activity/missing_start.expected.yaml
tests/conformance/cases/doc/activity/missing_start.yaml
tests/conformance/cases/doc/activity/negative_start.expected.yaml
tests/conformance/cases/doc/activity/negative_start.yaml
tests/conformance/cases/doc/activity/unknown_kind.expected.yaml
tests/conformance/cases/doc/activity/unknown_kind.yaml
tests/conformance/cases/doc/activity/unknown_status.expected.yaml
tests/conformance/cases/doc/activity/unknown_status.yaml
tests/conformance/cases/doc/interface/bad_port_name.expected.yaml
tests/conformance/cases/doc/interface/bad_port_name.yaml
tests/conformance/cases/doc/interface/malformed_spot.expected.yaml
tests/conformance/cases/doc/interface/malformed_spot.yaml
tests/conformance/cases/doc/interface/not_a_map.expected.yaml
tests/conformance/cases/doc/interface/not_a_map.yaml
tests/conformance/cases/doc/processing/empty_node_path.expected.yaml
tests/conformance/cases/doc/processing/empty_node_path.yaml
tests/conformance/cases/doc/processing/invalid_node_id.expected.yaml
tests/conformance/cases/doc/processing/invalid_node_id.yaml
tests/conformance/cases/doc/processing/missing_mode.expected.yaml
tests/conformance/cases/doc/processing/missing_mode.yaml
tests/conformance/cases/doc/processing/missing_node.expected.yaml
tests/conformance/cases/doc/processing/missing_node.yaml
tests/conformance/cases/doc/processing/missing_process.expected.yaml
tests/conformance/cases/doc/processing/missing_process.yaml
tests/conformance/cases/doc/relay/missing_fields.expected.yaml
tests/conformance/cases/doc/relay/missing_fields.yaml
tests/conformance/cases/doc/relay/negative_seq.expected.yaml
tests/conformance/cases/doc/relay/negative_seq.yaml
tests/conformance/cases/doc/relay/nonzero_duration.expected.yaml
tests/conformance/cases/doc/relay/nonzero_duration.yaml
tests/conformance/cases/doc/relay/valid_relay_chain.expected.yaml
tests/conformance/cases/doc/relay/valid_relay_chain.yaml
tests/conformance/cases/doc/shape/missing_activities.expected.yaml
tests/conformance/cases/doc/shape/missing_activities.yaml
tests/conformance/cases/doc/shape/root_not_mapping.expected.yaml
tests/conformance/cases/doc/shape/root_not_mapping.yaml
tests/conformance/cases/doc/shape/unknown_key_activity.expected.yaml
tests/conformance/cases/doc/shape/unknown_key_activity.yaml
tests/conformance/cases/doc/shape/unknown_key_top.expected.yaml
tests/conformance/cases/doc/shape/unknown_key_top.yaml
tests/conformance/cases/doc/shape/wrong_type.expected.yaml
tests/conformance/cases/doc/shape/wrong_type.yaml
tests/conformance/cases/doc/toplevel/negative_now.expected.yaml
tests/conformance/cases/doc/toplevel/negative_now.yaml
tests/conformance/cases/doc/toplevel/time_without_unit.expected.yaml
tests/conformance/cases/doc/toplevel/time_without_unit.yaml
tests/conformance/cases/doc/toplevel/unknown_objective_kind.expected.yaml
tests/conformance/cases/doc/toplevel/unknown_objective_kind.yaml
tests/conformance/cases/doc/toplevel/unknown_outcome.expected.yaml
tests/conformance/cases/doc/toplevel/unknown_outcome.yaml
tests/conformance/cases/doc/transport/malformed_arc.expected.yaml
tests/conformance/cases/doc/transport/malformed_arc.yaml
tests/conformance/cases/doc/transport/malformed_from_spot.expected.yaml
tests/conformance/cases/doc/transport/malformed_from_spot.yaml
tests/conformance/cases/doc/transport/missing_arc.expected.yaml
tests/conformance/cases/doc/transport/missing_arc.yaml
tests/conformance/cases/doc/transport/missing_from_spot.expected.yaml
tests/conformance/cases/doc/transport/missing_from_spot.yaml
tests/conformance/cases/doc/transport/missing_transporter.expected.yaml
tests/conformance/cases/doc/transport/missing_transporter.yaml
tests/conformance/cases/doc/valid/interface.expected.yaml
tests/conformance/cases/doc/valid/interface.yaml
tests/conformance/cases/doc/valid/minimal.expected.yaml
tests/conformance/cases/doc/valid/minimal.yaml
tests/conformance/cases/doc/valid/pending_status.expected.yaml
tests/conformance/cases/doc/valid/pending_status.yaml
tests/conformance/cases/doc/valid/plan.expected.yaml
tests/conformance/cases/doc/valid/plan.yaml
tests/conformance/cases/doc/valid/pure_data.expected.yaml
tests/conformance/cases/doc/valid/pure_data.yaml
tests/conformance/cases/doc/valid/status.expected.yaml
tests/conformance/cases/doc/valid/status.yaml
tests/conformance/cases/doc/valid/terminal_status.expected.yaml
tests/conformance/cases/doc/valid/terminal_status.yaml
tests/conformance/cases/env/_baseline.yaml
tests/conformance/cases/env/aggregation/multiple_violations.expected.yaml
tests/conformance/cases/env/aggregation/multiple_violations.yaml
tests/conformance/cases/env/identifiers/cross_kind_coincidence.expected.yaml
tests/conformance/cases/env/identifiers/cross_kind_coincidence.yaml
tests/conformance/cases/env/identifiers/duplicate_device_id.expected.yaml
tests/conformance/cases/env/identifiers/duplicate_device_id.yaml
tests/conformance/cases/env/identifiers/duplicate_spot_id.expected.yaml
tests/conformance/cases/env/identifiers/duplicate_spot_id.yaml
tests/conformance/cases/env/identifiers/duplicate_transporter_id.expected.yaml
tests/conformance/cases/env/identifiers/duplicate_transporter_id.yaml
tests/conformance/cases/env/identifiers/invalid_identifier.expected.yaml
tests/conformance/cases/env/identifiers/invalid_identifier.yaml
tests/conformance/cases/env/shape/empty_devices.expected.yaml
tests/conformance/cases/env/shape/empty_devices.yaml
tests/conformance/cases/env/shape/empty_modes.expected.yaml
tests/conformance/cases/env/shape/empty_modes.yaml
tests/conformance/cases/env/shape/missing_devices.expected.yaml
tests/conformance/cases/env/shape/missing_devices.yaml
tests/conformance/cases/env/shape/missing_processes.expected.yaml
tests/conformance/cases/env/shape/missing_processes.yaml
tests/conformance/cases/env/shape/missing_time.expected.yaml
tests/conformance/cases/env/shape/missing_time.yaml
tests/conformance/cases/env/shape/root_not_mapping.expected.yaml
tests/conformance/cases/env/shape/root_not_mapping.yaml
tests/conformance/cases/env/shape/unknown_key.expected.yaml
tests/conformance/cases/env/shape/unknown_key.yaml
tests/conformance/cases/env/shape/wrong_type.expected.yaml
tests/conformance/cases/env/shape/wrong_type.yaml
tests/conformance/cases/env/spots/input_spots_share_spot.expected.yaml
tests/conformance/cases/env/spots/input_spots_share_spot.yaml
tests/conformance/cases/env/spots/malformed_qualified_spot.expected.yaml
tests/conformance/cases/env/spots/malformed_qualified_spot.yaml
tests/conformance/cases/env/spots/output_spots_share_spot.expected.yaml
tests/conformance/cases/env/spots/output_spots_share_spot.yaml
tests/conformance/cases/env/spots/spot_device_not_in_mode.expected.yaml
tests/conformance/cases/env/spots/spot_device_not_in_mode.yaml
tests/conformance/cases/env/spots/unknown_device.expected.yaml
tests/conformance/cases/env/spots/unknown_device.yaml
tests/conformance/cases/env/spots/unknown_mode_device.expected.yaml
tests/conformance/cases/env/spots/unknown_mode_device.yaml
tests/conformance/cases/env/spots/unknown_spot.expected.yaml
tests/conformance/cases/env/spots/unknown_spot.yaml
tests/conformance/cases/env/transports/duplicate_transport_entry.expected.yaml
tests/conformance/cases/env/transports/duplicate_transport_entry.yaml
tests/conformance/cases/env/transports/unknown_transporter.expected.yaml
tests/conformance/cases/env/transports/unknown_transporter.yaml
tests/conformance/cases/env/valid/minimal.expected.yaml
tests/conformance/cases/env/valid/minimal.yaml
tests/conformance/cases/env/valid/multi_device_mode.expected.yaml
tests/conformance/cases/env/valid/multi_device_mode.yaml
tests/conformance/cases/env/valid/pure_data_process.expected.yaml
tests/conformance/cases/env/valid/pure_data_process.yaml
tests/conformance/cases/env/valid/same_spot_transport.expected.yaml
tests/conformance/cases/env/valid/same_spot_transport.yaml
tests/conformance/cases/env/valid/with_transport.expected.yaml
tests/conformance/cases/env/valid/with_transport.yaml
tests/conformance/cases/env/values/empty_time_unit.expected.yaml
tests/conformance/cases/env/values/empty_time_unit.yaml
tests/conformance/cases/env/values/negative_transport_duration.expected.yaml
tests/conformance/cases/env/values/negative_transport_duration.yaml
tests/conformance/cases/env/values/nonpositive_duration.expected.yaml
tests/conformance/cases/env/values/nonpositive_duration.yaml
tests/conformance/cases/env/values/pure_data_negative_duration.expected.yaml
tests/conformance/cases/env/values/pure_data_negative_duration.yaml
tests/conformance/cases/env/values/pure_data_zero_duration.expected.yaml
tests/conformance/cases/env/values/pure_data_zero_duration.yaml
tests/conformance/cases/env/values/unknown_objective_kind.expected.yaml
tests/conformance/cases/env/values/unknown_objective_kind.yaml