labqoat 0.2.2__tar.gz → 0.2.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.
- {labqoat-0.2.2 → labqoat-0.2.3}/PKG-INFO +1 -1
- {labqoat-0.2.2 → labqoat-0.2.3}/pyproject.toml +1 -1
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/__init__.py +1 -1
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/run_command_catalog.py +1 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/skills/bundled/labqoat-data/SKILL.md +7 -9
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/skills/bundled/labqoat-runs/SKILL.md +18 -8
- labqoat-0.2.3/src/labqoat/compute/dataset_row_parts.py +70 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/run_datasets.py +23 -14
- {labqoat-0.2.2 → labqoat-0.2.3}/uv.lock +1 -1
- {labqoat-0.2.2 → labqoat-0.2.3}/.gitignore +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/README.md +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/__main__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/analytics_query.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/api_index.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/asset_batch.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/asset_batch_complete.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/asset_batch_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/asset_record.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/asset_record_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/attempt_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/automatic_recovery_policy.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/budget_adjustment.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/budget_adjustment_request.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/budget_reconciliation_request.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/build.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/build_log_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/build_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/build_stream_event.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/capabilities.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/checkpoint.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/checkpoint_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/child_outcome.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/compute_function.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/compute_host.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/compute_host_enrollment.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/compute_host_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/compute_host_share.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/compute_location_policy.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/compute_offering.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/compute_offering_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/compute_publication.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/compute_settings.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/compute_usage.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/compute_worker_pool.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/dashboard.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/dashboard_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/dashboard_version_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/dataset_import.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/dataset_import_event.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/dataset_publication.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/dataset_publication_event.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/dataset_repository.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/dataset_repository_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/dataset_revision.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/dataset_revision_files.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/dataset_revision_lineage.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/dataset_revision_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/dataset_revision_validation.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/dataset_tag.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/dataset_tag_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/deletion_receipt.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/distributed_group.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/distributed_group_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/distributed_rank.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/distributed_rank_acknowledgement.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/distributed_rank_failure.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/distributed_rank_receipt.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/emitter_helpers.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/fit_budget_history.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/fit_budget_interval.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/fit_budget_intervals.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/fork_lineage.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/fork_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/fork_request.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/hugging_face_preview.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/hugging_face_source.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/knowledge_brief.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/knowledge_file_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/knowledge_history.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/knowledge_node.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/knowledge_objective.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/knowledge_orientation.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/knowledge_publication.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/knowledge_receipt.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/knowledge_revision.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/knowledge_step_brief.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/knowledge_step_link.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/knowledge_step_status.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/knowledge_view.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/location_registry.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/log_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/materialized_dataset_file.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/metric_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_analytics_query.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_asset_record.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_build.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_child_run.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_compute_run.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_dashboard.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_dataset_import.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_dataset_repository.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_dataset_tag.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_knowledge_brief.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_knowledge_file.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_knowledge_link.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_knowledge_node.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_knowledge_objectives.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_knowledge_revision.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_knowledge_status.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_note.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/new_operation_event.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/node.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/node_log_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/node_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/note.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/note_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/note_patch.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/operation_event.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/operation_event_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/output_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/pool.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/pool_log_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/pool_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/problem.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/produced_asset_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/project.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/project_attributes.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/project_list.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/project_move.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/project_move_result.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/publication_input.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/recovery_checkpoint_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/recovery_discovery.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/recovery_operation.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/recovery_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/recovery_reason.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/recovery_request.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/response_registry.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/restore_acknowledgement.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/restore_receipt.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/run.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/run_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/run_placement.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/run_stream_event.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/secret.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/secret_list.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/shard_outcome.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/shard_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/shard_recovery_item.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/shard_recovery_plan.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/status.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/transport.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_ack.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_asset_prepare.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_checkpoint.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_claim.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_failure.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_heartbeat.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_inputs.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_log_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_logs.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_metrics.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_output.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_produced_asset.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_shard_claim.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_shard_finish.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_shard_snapshot.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/worker_shard_state.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/workflow_decision_receipt.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/workflow_decision_request.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/workflow_node.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/workflow_plan_page.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/_generated/workflow_preview.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/analytics_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/argument_codec/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/argument_codec/argument_codec.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/argument_codec/value_decoder.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/argument_codec/value_encoder.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/assets_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/audio/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/audio/audio.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/audio/audio_batch.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/authoring/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/authoring/resources.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/base_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/builds_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/AGENTS.md +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/analytics_payload_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/analytics_waiter.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/auth/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/auth/credential_resolver.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/auth/credentials.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/auth/keyring_backend.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/auth/keyring_store.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/build_watch_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/cli_application.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/cli_context.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/command_runner.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/assets/download_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/assets/upload_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/auth/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/auth/auth_status_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/auth/login_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/auth/logout_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/authored/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/authored/authored_target.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/authored/launch_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/authored/launch_output.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/authored/launch_session.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/authored/parameter_type.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/authored/reference_parameter.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/authored/run_group.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/authored/run_observer.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/authored/source_module.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/authored/target_signature.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/completion_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/dataset_import_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/dataset_import_read_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/project/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/project/project_current_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/project/project_delete_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/project/project_list_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/project/project_move_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/project/project_put_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/project/project_show_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/run_attempts_group.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/run_budget_adjustment_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/run_budget_history_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/run_fork_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/run_recovery_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/run_workflow_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/secret_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/secret_input.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/commands/skills_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/completion_waiter.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/compute_read_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/enrollment/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/enrollment/agent_image.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/enrollment/bootstrap_scripts.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/enrollment/command_result.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/enrollment/dry_run_plan.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/enrollment/enrollment_error.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/enrollment/host_enrollment.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/enrollment/host_readiness_waiter.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/enrollment/preflight_report.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/enrollment/process_runner.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/enrollment/ssh_target.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/host_enroll_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/host_remove_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/host_share_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/location_set_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/settings_group.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/settings_patch.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/settings_set_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute/site_remove_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/compute_command_catalog.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/config/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/config/profile.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/config/profile_store.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/build_evidence.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/build_replay.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/build_window.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/capacity_message.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/child_digest.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/child_overview.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/console_entry.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/console_line.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/console_options.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/console_repeats.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/console_timestamp.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/failure_advice.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/final_outcome.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/lifecycle_message.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/log_selection.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/metric_cadence.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/metric_progress.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/metric_summary.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/outcome_block.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/run_banner.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/run_console.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/stage_board.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/console/stage_status.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/context_accessor.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/core_command_catalog.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/dashboard_command_catalog.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/dashboard_init_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/dashboard_publish_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/dashboard_scaffold.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/dataset_command_catalog.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/dataset_local_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/dataset_materialize_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/dataset_query_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/dataset_selection.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/dataset_tag_create_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/dataset_workspace.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/delete_endpoint_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/doctor_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/endpoint_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/exit_codes.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/group_help.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/log_feed_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/memory_attachments.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/memory_brief_reads.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/memory_command_catalog.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/memory_document_catalog.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/memory_files_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/memory_input.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/memory_mutation_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/memory_objectives.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/memory_orientation_catalog.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/memory_payload.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/memory_retrieval_catalog.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/memory_step_payload.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/mount_asset_source.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/mounted_asset_file.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/mutation_key.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/mutation_spec.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/observation_deadline.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/operational_command_catalog.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/auth_output.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/cli_failure.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/compact_writer.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/error_reporter.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/field_text.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/inferred_columns.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/json_writer.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/output_style.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/pretty_help.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/pretty_writer.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/record_facts.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/resource_view.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/result_value.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/result_writer.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/view_catalog.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/output/view_column.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/parameter_factory.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/payload_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/project_command_catalog.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/release_cache.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/root_group.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/run_logs_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/run_output_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/run_watch_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/secret_command_catalog.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/skills/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/skills/bundled/lab-update/SKILL.md +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/skills/bundled/labqoat-cli/SKILL.md +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/skills/bundled/labqoat-examples/SKILL.md +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/skills/bundled/labqoat-memory/SKILL.md +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/skills/skill_bundle.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/skills/skill_installer.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/strict_command.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/timezone_type.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/update_notifier.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/version_info.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/version_option.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/cli/workload_command_catalog.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/app.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/async_parallel_map.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/automatic_recovery.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/batch_handler.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/batching.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/checkpoint_codec.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/checkpoint_compatibility.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/checkpoint_group.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/checkpoint_identity.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/checkpoint_payload.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/checkpoint_progress.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/checkpoint_rank.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/checkpoint_recovery.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/checkpoint_recovery_types.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/child_admissions.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/child_observation_evidence.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/child_observations.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/child_publication.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/child_run_handle.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/class_decorator.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/class_metadata.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/class_options.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/class_signature.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/client_group.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/concurrency.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/context_files.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/context_ignore.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/context_output.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/dataset_codec.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/dataset_reference_schema.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/enter_decorator.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/fork_worker/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/fork_worker/__main__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/fork_worker/fork_worker.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/function.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/function_calls.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/function_decorator.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/function_signature.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/image.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/app_images.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/app_source.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/apt_step.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/base_catalog.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/command_step.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/copy_destinations.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/copy_step.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/declared_image.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/dependency_capture.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/dependency_command_step.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/dependency_validation.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/env_step.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/fragment_steps.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/hugging_face_snapshot.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/image_capture.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/image_validation.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/input_tree.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/local_path.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/operation.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/pip_step.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/publication_capture.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/runtime_bundle.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/stage_step.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/sync_step.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/uv_project.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/images/workdir_step.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/initializer_metadata.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/literal_codec.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/local_entrypoint.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/local_entrypoint_decorator.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/logging_routing.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/mapped_calls.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/mapping_codec.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/method.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/method_decorator.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/optional_codec.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/output_buffer.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/output_routing.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/parallel_map.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/pool_worker/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/pool_worker/__main__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/pool_worker/accepted_input.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/pool_worker/batch_queue.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/pool_worker/input_batch.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/pool_worker/input_execution.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/pool_worker/isolated_execution.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/pool_worker/pool_control.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/pool_worker/pool_delivery_stream.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/pool_worker/pool_executor.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/pool_worker/pool_worker.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/pool_worker/prepared_process.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/pool_worker/reusable_invocation.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/pool_worker/worker_initialization.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/prepared_submission.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/prepared_worker/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/prepared_worker/__main__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/prepared_worker/prepared_worker.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/publication.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/published_dataset.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/record_codec.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/run_assets.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/run_checkpoints.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/run_fit_budget.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/run_group.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/run_log_filter.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/run_log_handler.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/run_memory.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/run_options.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/run_recovery.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/run_shards.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/run_submissions.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/run_telemetry.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/run_workflow.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/scalar_codec.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/scaling.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/secret.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/sequence_codec.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/source_archive.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/submission.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/upload_memo.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/value_codec.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/volume.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/volume_mounts.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/worker/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/worker/__main__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/worker/compute_worker.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/worker/context_factory.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/worker/delivered_source.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/worker/failure_report.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/worker/input_completion.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/worker/invocation.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/worker/retained_inputs.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute/workers.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/compute_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dashboards_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/data_layout/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/data_layout/asset_references.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/data_layout/data_validation_error.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/data_layout/dataset_layout.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/data_layout/dataset_rows.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/data_layout/layout_compiler.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/data_layout/layout_node.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/data_layout/layout_value_codec.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_access/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_access/dataset_asset_index.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_access/dataset_input.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_access/dataset_prefetch.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_access/dataset_provider.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_access/dataset_requester.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_access/dataset_view.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_access/local_dataset_provider.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_access/prefetched_batch.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_access/revision_data.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_access/revision_files.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_access/revision_records.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_access/schema_rows.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_access/unavailable_dataset_provider.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_access/worker_dataset_provider.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_access/worker_dataset_requester.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_files/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_files/dataset_file.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/dataset_files/dataset_file_manifest.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/datasets/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/datasets/import_waiter.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/datasets/publication_waiter.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/datasets_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/errors/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/errors/api_error.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/errors/authentication_error.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/errors/credential_store_error.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/errors/import_failed_error.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/errors/publication_failed_error.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/errors/recovery_failed_error.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/errors/revision_conflict_error.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/errors/run_failed_error.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/errors/transport_error.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/evaluation_case.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/evaluation_report.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/json_document.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/management_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/manifests/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/manifests/manifest.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/manifests/manifest_formats.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/manifests/manifest_schemas.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/memory_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/memory_file_transfer.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/memory_files_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/memory_query.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/memory_writes.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/operations_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/projects/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/projects/atomic_project_file.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/projects/pinned_schema.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/projects/project_declaration.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/projects/project_directory.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/projects/project_names.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/projects/project_pin.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/projects/project_schemas.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/projects/project_selection.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/projects/schema_requirement.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/projects_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/py.typed +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/references/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/references/asset_ref.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/references/checkpoint_ref.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/references/dataset_binding.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/references/dataset_ref.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/references/named_reference.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/references/resolved_dataset_ref.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/references/resource_id.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/references/sha256.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/run_context.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/run_contracts/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/run_contracts/run_execution.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/runs/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/runs/budget_adjustment_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/runs/budget_history_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/runs/fork_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/runs/recovery_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/runs/recovery_handle.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/runs/recovery_waiter.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/runs/run_event_cursor.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/runs/run_handle.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/runs/run_log_stream.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/runs/run_waiter.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/runs/workflow_recovery_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/runs_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schema_codegen/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schema_codegen/field_name.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schema_codegen/field_type.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schema_codegen/record_field.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schema_codegen/record_fields.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schema_codegen/record_graph.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schema_codegen/record_source.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schema_codegen/schema_expression.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schema_codegen/schema_generator.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schema_codegen/schema_projection.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schema_codegen/schema_types.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/asset_schema.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/captured_resolver.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/formats.json +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/identity.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/missing.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/record_values.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/schema_document.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/schema_issue.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/schema_nodes.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/schema_policy.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/schema_record.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/schema_validation_error.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/schema_validator.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/value_decoder.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/value_shape.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/schemas/value_union.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/secrets_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/serializable_model.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/sse_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/sse_fields.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/stage_timer.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/asset_publisher.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/asset_source.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/cache_eviction.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/cache_lock.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/cache_receipt.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/cache_settings.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/client_asset_source.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/direct_asset_download.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/file_access.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/local_asset_publisher.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/shared_asset_cache.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/temporary_asset_file.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/unavailable_asset_publisher.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/unavailable_file_access.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/verified_file.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/worker_asset_source.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/storage/worker_file_access.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/assets/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/assets/worker_asset_publisher.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/budgets/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/budgets/__main__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/budgets/expiry_process.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/budgets/fit_allowance.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/budgets/fit_budget_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/budgets/fit_grant.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/budgets/fit_interval.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/budgets/fit_report.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/budgets/fit_session.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/budgets/fit_supervisor.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/distributed/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/distributed/checkpoint_archive.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/distributed/distributed_fit.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/distributed/group_restoration.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/distributed/rank_adapter.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/distributed/rank_event.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/distributed/rank_execution.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/distributed/rank_factory.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/distributed/rank_failure_error.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/distributed/rank_process.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/distributed/rank_processes.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/distributed/rank_snapshot.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/experiment_sink.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/labqoat_logger.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/lightning/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/lightning/labqoat_lightning_logger.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/lightning/lightning_callbacks.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/lightning/lightning_fit.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/lightning/lightning_fit_gate.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/lightning/lightning_restore_adapter.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/lightning_scalars.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/metric_batch.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/recovery/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/recovery/recovery_binding.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/recovery/recovery_capability.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/recovery/restore_adapter.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/recovery/restore_envelope.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/recovery/restore_snapshot.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/recovery/restore_state.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/run_log_record.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/telemetry_unavailable_error.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/training_metrics.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/training/worker_experiment_sink.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/async_http_lease.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/async_scoped_api.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/async_worker_event_stream.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/child_result_frame.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/http_connections.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/replay_request.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/scoped_api.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/session/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/session/local_frames.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/session/local_session_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/session/session_bridge.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/session/session_connection.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/session/session_credentials.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/session/session_endpoint.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/session/session_frames.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/session/session_outbox.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/session/session_pending.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/session/session_routes.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/session/session_telemetry.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/session/worker_session.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/telemetry_frames.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/worker_api.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/worker_api_error.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/worker_event_stream.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/worker_lease.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/worker_telemetry_buffer.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker/worker_telemetry_stream.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/worker_pools_client.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/workflows/__init__.py +0 -0
- {labqoat-0.2.2 → labqoat-0.2.3}/src/labqoat/workflows/dataset_resolver.py +0 -0
|
@@ -209,15 +209,13 @@ Use `lab run FILE.py::FUNCTION` for custom ingestion or transformation; see
|
|
|
209
209
|
return context.datasets.publish(output_name, row_type=OutputRow, rows=transformed_rows, key="derived-data")
|
|
210
210
|
```
|
|
211
211
|
|
|
212
|
-
The worker publication returns a typed immutable dataset
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
real import with `--name` still works, so do not treat a failed preview as a
|
|
220
|
-
failed source.
|
|
212
|
+
The worker publication returns a typed immutable dataset and takes any number of
|
|
213
|
+
rows: small publications travel in one request, larger ones are streamed to ordered
|
|
214
|
+
JSONL parts and retained for you (up to 100 parts of 64 MiB). Pass a generator
|
|
215
|
+
rather than a list for a large table, publish each split as one dataset, and never
|
|
216
|
+
truncate, sample or shard rows across numbered datasets to make them fit. An
|
|
217
|
+
unmodified upstream split comes in with `dataset import-hf`; `import-hf --preview`
|
|
218
|
+
can fail with `worker_failed` while the real import with `--name` still works.
|
|
221
219
|
Keep input revision references, transformation configuration, producing run,
|
|
222
220
|
and validation evidence with the resulting revision. Uploaded file assets and
|
|
223
221
|
dataset revisions are different resources: uploading alone does not define a
|
|
@@ -62,8 +62,12 @@ outcome, so use it only for a single short run. For a workflow with children, or
|
|
|
62
62
|
any training longer than a minute, watch without `--silent` and bound it with
|
|
63
63
|
`--wait-timeout`: a failed child prints its own `done` line at once, and metric
|
|
64
64
|
lines show a loss that is rising or stuck. Act on those while the rest runs:
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
fix and relaunch only what broke, and do not wait for the parent to end to learn
|
|
66
|
+
a child failed. Check every child's `val/loss` at least once a minute
|
|
67
|
+
(`lab run watch "$RUN" --wait-timeout 60 --metrics 'val/*'`, or `lab run metrics
|
|
68
|
+
CHILD_ID`): a loss that keeps rising, or is several times the best sibling's, will
|
|
69
|
+
not recover, so cancel that child with `lab run cancel CHILD_ID` instead of paying
|
|
70
|
+
for it to finish. Failed or cancelled runs
|
|
67
71
|
exit 1; an observation timeout exits 3 and leaves remote work running.
|
|
68
72
|
|
|
69
73
|
```sh
|
|
@@ -232,7 +236,12 @@ and pinned public Hugging Face model snapshots. Do not bake credentials into ima
|
|
|
232
236
|
use `gpu` (a supported model or `"any"`), `gpu_count`, and per-device `gpu_memory`
|
|
233
237
|
in MiB. `gpu="any"` requires a per-device memory floor. A request without `gpu`
|
|
234
238
|
needs both a positive `gpu_count` and `gpu_memory`.
|
|
235
|
-
|
|
239
|
+
Size requests from measurement, not guesses: `lab run machine RUN` reports, per
|
|
240
|
+
container, CPU use and throttling against the CPU limit, peak memory against the
|
|
241
|
+
memory limit, and GPU utilization and memory. Sustained throttling or a CPU peak
|
|
242
|
+
at 100% of the limit means too few cores for the processes started; a memory peak
|
|
243
|
+
near the limit precedes an out-of-memory kill (`SIGKILL`); peaks far below the
|
|
244
|
+
limits mean the request can shrink. Discover hardware with `lab compute offerings`. Request resources the workload
|
|
236
245
|
actually needs, and account for retries and concurrency in the budget. When the
|
|
237
246
|
user gives a spending limit, set `timeout` so that `timeout` times the offering's
|
|
238
247
|
hourly price stays under it.
|
|
@@ -278,11 +287,11 @@ or logs. Download once and reuse: import a dataset with `lab dataset import-hf`,
|
|
|
278
287
|
or cache a model snapshot in the image or a `compute.Volume`, instead of fetching
|
|
279
288
|
it again in every run of a sweep.
|
|
280
289
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
290
|
+
One artifact or checkpoint file holds at most 512 MiB, and hitting that at the end
|
|
291
|
+
loses the run: check sizes before spending compute, and publish large models as
|
|
292
|
+
weights only (no optimizer state), in half precision, or as several files.
|
|
293
|
+
`context.datasets.publish` takes rows of any count; pass a generator so a large
|
|
294
|
+
table is streamed rather than held in memory.
|
|
286
295
|
|
|
287
296
|
Workers run as the non-root user `labqoat` (UID 10001) with `HOME=/home/labqoat`.
|
|
288
297
|
Writable locations are `$HOME`, `/workspace`, `/tmp`, and mounted volumes; image
|
|
@@ -532,6 +541,7 @@ lab --json run list --all-projects --state running --limit 20
|
|
|
532
541
|
lab --json run get "$RUN_REF"
|
|
533
542
|
lab --json run status "$RUN_REF"
|
|
534
543
|
lab --json run placement "$RUN_REF"
|
|
544
|
+
lab --json run machine "$RUN_REF"
|
|
535
545
|
lab --json run logs "$RUN_REF" --limit 100
|
|
536
546
|
lab --json run metrics "$RUN_REF" --limit 100
|
|
537
547
|
lab --json run assets "$RUN_REF" --limit 100
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"""Bounded staging of typed rows for publication: inline when small, canonical JSONL part files otherwise."""
|
|
2
|
+
|
|
3
|
+
from dataclasses import dataclass, field
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from typing import BinaryIO
|
|
6
|
+
|
|
7
|
+
from labqoat.json_document import JsonValue
|
|
8
|
+
from labqoat.schemas.identity import Identity
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@dataclass
|
|
12
|
+
class DatasetRowParts:
|
|
13
|
+
"""Keep small publications in memory and stream larger ones to ordered part files of bounded size."""
|
|
14
|
+
|
|
15
|
+
directory: Path
|
|
16
|
+
inline_rows: int = 10_000
|
|
17
|
+
inline_bytes: int = 4_194_304
|
|
18
|
+
part_bytes: int = 64 * 1024 * 1024
|
|
19
|
+
maximum_parts: int = 100
|
|
20
|
+
rows: list[JsonValue] = field(default_factory=list)
|
|
21
|
+
paths: list[Path] = field(default_factory=list)
|
|
22
|
+
_lines: list[bytes] = field(default_factory=list)
|
|
23
|
+
_inline_size: int = 0
|
|
24
|
+
_part_size: int = 0
|
|
25
|
+
_stream: BinaryIO | None = None
|
|
26
|
+
|
|
27
|
+
def add(self, value: JsonValue) -> None:
|
|
28
|
+
"""Stage one encoded row, moving everything to part files once the inline budget is exceeded."""
|
|
29
|
+
line = Identity.bytes(value) + b"\n"
|
|
30
|
+
fits = len(self.rows) < self.inline_rows and self._inline_size + len(line) <= self.inline_bytes
|
|
31
|
+
if not self.paths and fits:
|
|
32
|
+
self.rows.append(value)
|
|
33
|
+
self._lines.append(line)
|
|
34
|
+
self._inline_size += len(line)
|
|
35
|
+
return
|
|
36
|
+
for staged in self._lines:
|
|
37
|
+
self._write(staged)
|
|
38
|
+
self.rows, self._lines = [], []
|
|
39
|
+
self._write(line)
|
|
40
|
+
|
|
41
|
+
def close(self) -> None:
|
|
42
|
+
"""Flush the open part so its bytes can be hashed and uploaded."""
|
|
43
|
+
if self._stream is not None:
|
|
44
|
+
self._stream.close()
|
|
45
|
+
self._stream = None
|
|
46
|
+
|
|
47
|
+
def discard(self) -> None:
|
|
48
|
+
"""Remove staged part files once they are retained elsewhere or the publication failed."""
|
|
49
|
+
self.close()
|
|
50
|
+
for path in self.paths:
|
|
51
|
+
path.unlink(missing_ok=True)
|
|
52
|
+
|
|
53
|
+
def _write(self, line: bytes) -> None:
|
|
54
|
+
"""Append to the current part, opening the next one when the size bound would be passed."""
|
|
55
|
+
if self._stream is None or (self._part_size and self._part_size + len(line) > self.part_bytes):
|
|
56
|
+
self._open()
|
|
57
|
+
assert self._stream is not None
|
|
58
|
+
self._stream.write(line)
|
|
59
|
+
self._part_size += len(line)
|
|
60
|
+
|
|
61
|
+
def _open(self) -> None:
|
|
62
|
+
"""Start the next ordered part file."""
|
|
63
|
+
self.close()
|
|
64
|
+
if len(self.paths) == self.maximum_parts:
|
|
65
|
+
raise ValueError(f"Typed publication accepts at most {self.maximum_parts} parts of {self.part_bytes} bytes")
|
|
66
|
+
self.directory.mkdir(parents=True, exist_ok=True)
|
|
67
|
+
path = self.directory / f"part-{len(self.paths):05d}.jsonl"
|
|
68
|
+
self.paths.append(path)
|
|
69
|
+
self._stream = path.open("wb")
|
|
70
|
+
self._part_size = 0
|
|
@@ -4,15 +4,17 @@ from collections.abc import Iterable, Iterator
|
|
|
4
4
|
from dataclasses import dataclass
|
|
5
5
|
from pathlib import Path
|
|
6
6
|
from typing import TypeVar
|
|
7
|
+
from uuid import uuid4
|
|
7
8
|
|
|
8
9
|
from labqoat._generated.dataset_publication import DatasetPublication
|
|
10
|
+
from labqoat.argument_codec import encode_result
|
|
11
|
+
from labqoat.compute.dataset_row_parts import DatasetRowParts
|
|
9
12
|
from labqoat.compute.published_dataset import PublishedDataset
|
|
10
13
|
from labqoat.compute.value_codec import ValueCodec
|
|
11
14
|
from labqoat.dataset import Dataset
|
|
12
15
|
from labqoat.dataset_access.worker_dataset_provider import WorkerDatasetProvider
|
|
13
16
|
from labqoat.dataset_access.worker_dataset_requester import WorkerDatasetRequester
|
|
14
17
|
from labqoat.json_document import JsonDocument, JsonValue
|
|
15
|
-
from labqoat.schemas.identity import Identity
|
|
16
18
|
from labqoat.storage.cache_settings import CacheSettings
|
|
17
19
|
from labqoat.worker.worker_api import WorkerApi
|
|
18
20
|
|
|
@@ -27,29 +29,36 @@ class RunDatasets:
|
|
|
27
29
|
root: Path
|
|
28
30
|
|
|
29
31
|
def publish(self, name: str, *, row_type: type[T], rows: Iterable[T], key: str) -> Dataset[T]:
|
|
30
|
-
"""Durably accept
|
|
32
|
+
"""Durably accept typed rows of any count and follow committed terminal publication evidence."""
|
|
31
33
|
from labqoat.data_layout.dataset_layout import DatasetLayout
|
|
32
34
|
|
|
33
35
|
codec = ValueCodec(row_type)
|
|
34
36
|
schema = codec.schema()
|
|
35
37
|
DatasetLayout.capture(schema)
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
raise ValueError("Typed publication accepts at most 4194304 canonical JSONL bytes")
|
|
45
|
-
encoded.append(value)
|
|
46
|
-
request: dict[str, JsonValue] = {"dataset": name, "schema": schema, "rows": encoded, "key": key}
|
|
47
|
-
publication = DatasetPublication.from_dict(self.api.json("POST", "/api/v1/worker/datasets", request))
|
|
38
|
+
parts = DatasetRowParts(self.root / "publications" / uuid4().hex)
|
|
39
|
+
try:
|
|
40
|
+
for row in rows:
|
|
41
|
+
parts.add(codec.encode(row))
|
|
42
|
+
request: dict[str, JsonValue] = {"dataset": name, "schema": schema, "key": key, **self._source(parts)}
|
|
43
|
+
publication = DatasetPublication.from_dict(self.api.json("POST", "/api/v1/worker/datasets", request))
|
|
44
|
+
finally:
|
|
45
|
+
parts.discard()
|
|
48
46
|
if publication.status == "publishing":
|
|
49
47
|
completed = self.api.completion(f"/api/v1/worker/datasets/{publication.id}/completion", "revision")
|
|
50
48
|
publication = DatasetPublication.from_dict(completed)
|
|
51
49
|
return PublishedDataset.capture(publication, row_type)
|
|
52
50
|
|
|
51
|
+
def _source(self, parts: DatasetRowParts) -> dict[str, JsonValue]:
|
|
52
|
+
"""Send small publications inline; retain larger ones as ordered JSONL artifacts and name those."""
|
|
53
|
+
if not parts.paths:
|
|
54
|
+
return {"rows": parts.rows}
|
|
55
|
+
from labqoat.training.assets.worker_asset_publisher import WorkerAssetPublisher
|
|
56
|
+
|
|
57
|
+
parts.close()
|
|
58
|
+
publisher = WorkerAssetPublisher(self.api, purpose="dataset")
|
|
59
|
+
retained = [publisher.publish(path, media_type="application/x-ndjson", name=path.name) for path in parts.paths]
|
|
60
|
+
return {"files": [encode_result(asset) for asset in retained]}
|
|
61
|
+
|
|
53
62
|
def rows(self, dataset: Dataset[T]) -> Iterator[T]:
|
|
54
63
|
"""Decode verified Parquet records into ordinary authored dataclasses under a scoped lease."""
|
|
55
64
|
inputs = (dataset.reference,)
|
|
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
|
|
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
|