roar-cli 0.3.0__tar.gz → 0.3.1__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.
- {roar_cli-0.3.0 → roar_cli-0.3.1}/PKG-INFO +2 -2
- {roar_cli-0.3.0 → roar_cli-0.3.1}/README.md +1 -1
- {roar_cli-0.3.0 → roar_cli-0.3.1}/pyproject.toml +1 -1
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/framework/runtime_imports.py +16 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/inject/sitecustomize.py +17 -1
- roar_cli-0.3.1/roar/execution/runtime/inject/support.py +98 -0
- roar_cli-0.3.0/roar/execution/runtime/inject/support.py +0 -51
- {roar_cli-0.3.0 → roar_cli-0.3.1}/LICENSE +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/__main__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/analyzers/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/analyzers/base.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/analyzers/experiment_trackers.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/get/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/get/requests.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/get/results.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/get/service.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/get/transfer.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/git.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/label_rendering.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/labels.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/lookup/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/lookup/models.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/lookup/policy.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/lookup/refs.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/lookup/remote_artifacts.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/lookup/runner.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/blake3_upgrade.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/collection.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/composite_builder.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/composites.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/datasets.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/git_remote.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/job_links.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/job_preparation.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/lineage.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/lineage_composites.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/metadata.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/put_composites.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/put_execution.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/put_preparation.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/register_execution.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/register_preparation.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/register_preview_jobs.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/register_tag_push.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/registration.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/registration_package.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/remote_job_uids.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/remote_registry.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/requests.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/results.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/runtime.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/secrets.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/service.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/session.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/source_resolution.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/publish/targets.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/dag.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/diff.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/diff_engine.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/diff_graph.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/diff_refs.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/git_readiness.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/inputs.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/label.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/lineage.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/log.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/requests.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/results.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/show.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/query/status.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/reproduce/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/reproduce/environment.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/reproduce/lookup.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/reproduce/requests.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/reproduce/results.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/reproduce/service.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/run/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/run/dag_references.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/run/dirty_tree_error.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/run/execution.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/run/requests.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/run/service.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/run/verbosity.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/system_labels.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/workflow/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/workflow/requests.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/workflow/results.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/application/workflow/service.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/auth_store.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/local/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/local/plugin.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/config.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/export.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/host_execution.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/lineage.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/plugin.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/runtime_bundle.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/submit.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/osmo/workflow.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/_agent_names.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/collector.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/config.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/constants.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/env_contract.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/fragment.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/fragment_reconstituter.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/node_agent.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/plugin.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/proxy_fragments.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/roar_worker.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/runtime_hooks.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/s3_key_paths.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/submit.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/backends/ray/submit_context.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/_format.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/command_registry.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/auth.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/build.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/config.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/dag.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/diff.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/env.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/export_registration_package.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/get.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/init.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/init_agents.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/inputs.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/label.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/lineage.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/log.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/login.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/logout.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/osmo.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/pop.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/projects.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/proxy.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/put.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/register.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/reproduce.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/reset.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/run.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/scope.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/show.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/status.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/telemetry.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/tracer.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/tui.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/whoami.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/commands/workflow.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/context.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/decorators.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/publish_intent.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/templates/agents/SKILL.md.tmpl +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/cli/templates/agents/agents_section.md.tmpl +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/bootstrap.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/canonical_session.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/digests.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/dto/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/dto/registration.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/exceptions.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/config.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/lineage.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/logger.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/presenter.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/provenance.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/registration.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/repositories.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/reproduction.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/run.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/services.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/telemetry.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/interfaces/vcs.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/label_constants.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/label_origins.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/logging.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/artifact.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/base.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/dag.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/dataset_identifier.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/glaas.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/job.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/lineage.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/provenance.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/run.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/session.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/telemetry.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/models/vcs.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/operation_metadata.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/session_hash.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/step_name.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/tracer_modes.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/core/validation.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/context.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/engine.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/hashing/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/hashing/backend.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/hashing/blake3.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/models.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/query_context.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/repositories/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/repositories/artifact.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/repositories/collection.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/repositories/composite.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/repositories/hash_cache.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/repositories/job.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/repositories/label.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/repositories/session.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/schema.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/services/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/services/hashing.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/services/job_recording.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/services/lineage.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/services/session.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/db/step_priority.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/cluster/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/cluster/bridge.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/cluster/proxy.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/cluster/proxy_config.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/fragments/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/fragments/lineage.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/fragments/models.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/fragments/reconstitution.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/fragments/sessions.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/fragments/transport.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/framework/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/framework/contract.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/framework/planning.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/framework/registry.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/assembler.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/build_pip_collector.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/build_tool_collector.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/data_loader.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/file_filter.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/package_collector.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/process_summarizer.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/runtime_collector.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/provenance/service.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/recording/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/recording/dataset_identifier.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/recording/dataset_metadata.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/recording/dataset_profile.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/recording/job_recording.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/reproduction/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/reproduction/environment_setup.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/reproduction/installers.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/reproduction/pipeline_executor.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/reproduction/pipeline_metadata.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/backup.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/coordinator.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/driver_entrypoint.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/errors.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/host_execution.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/inject/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/inject/tracker.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/proxy_resource.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/resources.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/signal_handler.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/tracer.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/tracer_backends.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/tracer_banner.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/execution/runtime/worker_bootstrap.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/filters/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/filters/files.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/filters/omit.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/glaas_auth.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/glaas_client.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/bootstrap.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/config/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/config/access.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/config/loader.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/config/raw.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/config/schema.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/discovery.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/download/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/download/base.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/download/gcs.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/download/get.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/download/http.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/download/noop.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/download/s3.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/git/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/git/base.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/git/context.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/git/provider.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/auth.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/client.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/fragment_streamer.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/registration/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/registration/_artifact_ref.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/registration/artifact.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/registration/coordinator.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/registration/job.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/registration/session.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/glaas/transport.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/registry.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/resolution.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/storage/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/storage/base.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/storage/gcs.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/storage/memory.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/storage/noop.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/storage/publish.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/storage/s3.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/telemetry/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/telemetry/base.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/integrations/telemetry/wandb.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/console.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/dag_data_builder.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/dag_renderer.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/diff_renderer.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/formatting.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/null.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/run_report.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/show_renderer.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/spinner.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/presenters/terminal.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/publish_auth.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/require.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/scope_config.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/_io.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/capabilities.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/config.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/hooks.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/install.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/paths.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/payload.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/queue.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/stats.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/telemetry/uploader.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/app.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/data.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/screens/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/screens/config_editor.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/screens/label_editor.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/screens/launcher.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/screens/log.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/screens/main.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/screens/search.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/screens/session_picker.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/tmux.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/widgets/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/tui/widgets/detail.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/utils/__init__.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/utils/cloud.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/roar/utils/git_url.py +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/Cargo.lock +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/Cargo.toml +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/artifact-hash-core/Cargo.toml +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/artifact-hash-core/src/lib.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/artifact-hash-py/Cargo.toml +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/artifact-hash-py/src/lib.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/tracer-fd/Cargo.toml +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/tracer-fd/src/lib.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/tracer-runtime/Cargo.toml +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/tracer-runtime/src/lib.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/tracer-schema/Cargo.toml +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/crates/tracer-schema/src/lib.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/services/proxy/Cargo.lock +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/services/proxy/Cargo.toml +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/services/proxy/src/forward.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/services/proxy/src/main.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/services/proxy/src/s3.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/common/Cargo.toml +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/common/src/lib.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/probe/Cargo.toml +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/probe/rust-toolchain.toml +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/probe/src/main.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/Cargo.toml +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/build.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/attach.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/bin/roard.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/client.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/daemon.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/events.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/ipc.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/lib.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/main.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ebpf/userspace/src/state.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/Cargo.toml +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/build.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/src/bin/io_fixture.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/src/interpose.c +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/src/ipc.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/src/lib.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/src/main.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/tests/comprehensive.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/preload/tests/standalone.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ptrace/Cargo.toml +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ptrace/rustfmt.toml +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ptrace/src/arch.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ptrace/src/main.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/rust/tracers/ptrace/src/seccomp.rs +0 -0
- {roar_cli-0.3.0 → roar_cli-0.3.1}/scripts/sync_packaged_rust_artifacts.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: roar-cli
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Classifier: Development Status :: 3 - Alpha
|
|
5
5
|
Classifier: Intended Audience :: Developers
|
|
6
6
|
Classifier: Intended Audience :: Science/Research
|
|
@@ -69,7 +69,7 @@ Requires Python 3.10+.
|
|
|
69
69
|
|
|
70
70
|
> For the full prereqs, platform support matrix, tracer-backend setup,
|
|
71
71
|
> macOS SIP notes, and sdist build steps, see the canonical
|
|
72
|
-
> [
|
|
72
|
+
> [Installation](https://glaas.ai/docs/installation) docs page.
|
|
73
73
|
> What's below is a TL;DR.
|
|
74
74
|
|
|
75
75
|
### Platform Support
|
|
@@ -20,7 +20,7 @@ Requires Python 3.10+.
|
|
|
20
20
|
|
|
21
21
|
> For the full prereqs, platform support matrix, tracer-backend setup,
|
|
22
22
|
> macOS SIP notes, and sdist build steps, see the canonical
|
|
23
|
-
> [
|
|
23
|
+
> [Installation](https://glaas.ai/docs/installation) docs page.
|
|
24
24
|
> What's below is a TL;DR.
|
|
25
25
|
|
|
26
26
|
### Platform Support
|
|
@@ -22,6 +22,17 @@ class RuntimeImportController:
|
|
|
22
22
|
def __init__(self, environ: MutableMapping[str, str]):
|
|
23
23
|
self._environ = environ
|
|
24
24
|
self._initialized_backend_names: set[str] = set()
|
|
25
|
+
self._backend_dispatch_disabled = False
|
|
26
|
+
|
|
27
|
+
def disable_backend_dispatch(self) -> None:
|
|
28
|
+
"""Suppress backend init / observe / patch for the lifetime of this controller.
|
|
29
|
+
|
|
30
|
+
Used when the traced Python's ABI doesn't match roar's bundled compiled
|
|
31
|
+
deps — loading a backend plugin would trigger an ``ImportError`` from
|
|
32
|
+
wrong-ABI wheels (pydantic_core, etc.). The stdlib tracker hooks
|
|
33
|
+
(file opens, environ reads, import names) keep running.
|
|
34
|
+
"""
|
|
35
|
+
self._backend_dispatch_disabled = True
|
|
25
36
|
|
|
26
37
|
def resolve_selected_backend(self) -> ExecutionBackend | None:
|
|
27
38
|
backend_name = str(self._environ.get(ROAR_EXECUTION_BACKEND_ENV) or "").strip()
|
|
@@ -33,11 +44,16 @@ class RuntimeImportController:
|
|
|
33
44
|
return None
|
|
34
45
|
|
|
35
46
|
def initialize_selected_backend(self) -> None:
|
|
47
|
+
if self._backend_dispatch_disabled:
|
|
48
|
+
return
|
|
36
49
|
backend = self.resolve_selected_backend()
|
|
37
50
|
if backend is not None:
|
|
38
51
|
self._initialize_backend(backend)
|
|
39
52
|
|
|
40
53
|
def handle_import(self, module_name: str, module: Any) -> ExecutionBackend | None:
|
|
54
|
+
if self._backend_dispatch_disabled:
|
|
55
|
+
return None
|
|
56
|
+
|
|
41
57
|
matched_backend = match_execution_backend_for_module(module_name)
|
|
42
58
|
if matched_backend is not None:
|
|
43
59
|
self._environ.setdefault(ROAR_EXECUTION_BACKEND_ENV, matched_backend.name)
|
|
@@ -20,6 +20,7 @@ def _append_roar_runtime_pythonpath() -> None:
|
|
|
20
20
|
_append_roar_runtime_pythonpath()
|
|
21
21
|
|
|
22
22
|
from roar.execution.framework.runtime_imports import RuntimeImportController
|
|
23
|
+
from roar.execution.runtime.inject.support import abi_minor_version, bundled_abi_tag
|
|
23
24
|
from roar.execution.runtime.inject.tracker import RuntimeInjectionTracker
|
|
24
25
|
|
|
25
26
|
LOG_FILE = os.environ.get("ROAR_LOG_FILE")
|
|
@@ -42,7 +43,22 @@ _runtime_tracker.install()
|
|
|
42
43
|
|
|
43
44
|
|
|
44
45
|
if os.environ.get("ROAR_WRAP") == "1":
|
|
45
|
-
|
|
46
|
+
_bundled_abi = abi_minor_version(bundled_abi_tag(_ROAR_INJECT_DIR))
|
|
47
|
+
_running_abi = (sys.version_info.major, sys.version_info.minor)
|
|
48
|
+
if _bundled_abi is not None and _bundled_abi != _running_abi:
|
|
49
|
+
sys.stderr.write(
|
|
50
|
+
f"roar: traced Python is {_running_abi[0]}.{_running_abi[1]} but "
|
|
51
|
+
f"roar-cli was installed under Python "
|
|
52
|
+
f"{_bundled_abi[0]}.{_bundled_abi[1]}.\n"
|
|
53
|
+
f" Backend integrations (Ray, OSMO) are disabled for this run.\n"
|
|
54
|
+
f" File I/O is still captured.\n"
|
|
55
|
+
f" To re-enable backends, reinstall under the matching Python:\n"
|
|
56
|
+
f" uv tool install --python python{_running_abi[0]}.{_running_abi[1]} "
|
|
57
|
+
f"roar-cli --force\n"
|
|
58
|
+
)
|
|
59
|
+
_runtime_import_controller.disable_backend_dispatch()
|
|
60
|
+
else:
|
|
61
|
+
_runtime_import_controller.initialize_selected_backend()
|
|
46
62
|
|
|
47
63
|
|
|
48
64
|
atexit.register(_runtime_tracker.write_log)
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import contextlib
|
|
4
|
+
import os
|
|
5
|
+
import re
|
|
6
|
+
import shutil
|
|
7
|
+
import sys
|
|
8
|
+
import threading
|
|
9
|
+
|
|
10
|
+
_roar_suppress = threading.local()
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def bundled_abi_tag(inject_dir: str) -> str | None:
|
|
14
|
+
"""Return the cpython ABI tag of roar's bundled compiled deps, or None.
|
|
15
|
+
|
|
16
|
+
Walks up from ``inject_dir`` to find the enclosing ``site-packages`` and
|
|
17
|
+
parses the CPython ABI tag from a known compiled dependency's ``.so``
|
|
18
|
+
filename (e.g. ``_pydantic_core.cpython-313-x86_64-linux-gnu.so`` →
|
|
19
|
+
``"cpython-313"``). Returns ``None`` if the layout doesn't match — callers
|
|
20
|
+
should treat ``None`` as "don't gate" rather than assuming mismatch.
|
|
21
|
+
"""
|
|
22
|
+
site_pkg = inject_dir
|
|
23
|
+
while os.path.basename(site_pkg) != "site-packages":
|
|
24
|
+
parent = os.path.dirname(site_pkg)
|
|
25
|
+
if parent == site_pkg:
|
|
26
|
+
return None
|
|
27
|
+
site_pkg = parent
|
|
28
|
+
|
|
29
|
+
for known_pkg in ("pydantic_core", "blake3"):
|
|
30
|
+
pkg_dir = os.path.join(site_pkg, known_pkg)
|
|
31
|
+
if not os.path.isdir(pkg_dir):
|
|
32
|
+
continue
|
|
33
|
+
try:
|
|
34
|
+
entries = os.listdir(pkg_dir)
|
|
35
|
+
except OSError:
|
|
36
|
+
continue
|
|
37
|
+
for filename in entries:
|
|
38
|
+
for token in filename.split("."):
|
|
39
|
+
if token.startswith("cpython-"):
|
|
40
|
+
m = re.match(r"cpython-\d+", token)
|
|
41
|
+
if m:
|
|
42
|
+
return m.group()
|
|
43
|
+
return None
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def abi_minor_version(tag: str | None) -> tuple[int, int] | None:
|
|
47
|
+
"""Extract ``(major, minor)`` from an ABI tag like ``cp313`` or ``cpython-313``."""
|
|
48
|
+
if not tag:
|
|
49
|
+
return None
|
|
50
|
+
match = re.search(r"\d+", tag)
|
|
51
|
+
if not match:
|
|
52
|
+
return None
|
|
53
|
+
digits = match.group()
|
|
54
|
+
if len(digits) < 2:
|
|
55
|
+
return None
|
|
56
|
+
return (int(digits[0]), int(digits[1:]))
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def is_suppressed() -> bool:
|
|
60
|
+
return bool(getattr(_roar_suppress, "active", False))
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
class SuppressTracking:
|
|
64
|
+
"""Context manager: file operations inside are not tracked."""
|
|
65
|
+
|
|
66
|
+
def __enter__(self):
|
|
67
|
+
_roar_suppress.active = True
|
|
68
|
+
return self
|
|
69
|
+
|
|
70
|
+
def __exit__(self, *_):
|
|
71
|
+
_roar_suppress.active = False
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def merge_working_dir(source_dir: str, target_dir: str) -> None:
|
|
75
|
+
for entry in os.listdir(source_dir):
|
|
76
|
+
src = os.path.join(source_dir, entry)
|
|
77
|
+
dst = os.path.join(target_dir, entry)
|
|
78
|
+
try:
|
|
79
|
+
if os.path.isdir(src):
|
|
80
|
+
shutil.copytree(src, dst, dirs_exist_ok=True)
|
|
81
|
+
else:
|
|
82
|
+
shutil.copy2(src, dst)
|
|
83
|
+
except Exception:
|
|
84
|
+
continue
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def warn_runtime(message: str, *args: object) -> None:
|
|
88
|
+
text = message % args if args else message
|
|
89
|
+
try:
|
|
90
|
+
from roar.core.logging import get_logger
|
|
91
|
+
|
|
92
|
+
get_logger().warning(text)
|
|
93
|
+
return
|
|
94
|
+
except Exception:
|
|
95
|
+
pass
|
|
96
|
+
|
|
97
|
+
with contextlib.suppress(Exception):
|
|
98
|
+
sys.stderr.write(text + "\n")
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import contextlib
|
|
4
|
-
import os
|
|
5
|
-
import shutil
|
|
6
|
-
import sys
|
|
7
|
-
import threading
|
|
8
|
-
|
|
9
|
-
_roar_suppress = threading.local()
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def is_suppressed() -> bool:
|
|
13
|
-
return bool(getattr(_roar_suppress, "active", False))
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
class SuppressTracking:
|
|
17
|
-
"""Context manager: file operations inside are not tracked."""
|
|
18
|
-
|
|
19
|
-
def __enter__(self):
|
|
20
|
-
_roar_suppress.active = True
|
|
21
|
-
return self
|
|
22
|
-
|
|
23
|
-
def __exit__(self, *_):
|
|
24
|
-
_roar_suppress.active = False
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
def merge_working_dir(source_dir: str, target_dir: str) -> None:
|
|
28
|
-
for entry in os.listdir(source_dir):
|
|
29
|
-
src = os.path.join(source_dir, entry)
|
|
30
|
-
dst = os.path.join(target_dir, entry)
|
|
31
|
-
try:
|
|
32
|
-
if os.path.isdir(src):
|
|
33
|
-
shutil.copytree(src, dst, dirs_exist_ok=True)
|
|
34
|
-
else:
|
|
35
|
-
shutil.copy2(src, dst)
|
|
36
|
-
except Exception:
|
|
37
|
-
continue
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
def warn_runtime(message: str, *args: object) -> None:
|
|
41
|
-
text = message % args if args else message
|
|
42
|
-
try:
|
|
43
|
-
from roar.core.logging import get_logger
|
|
44
|
-
|
|
45
|
-
get_logger().warning(text)
|
|
46
|
-
return
|
|
47
|
-
except Exception:
|
|
48
|
-
pass
|
|
49
|
-
|
|
50
|
-
with contextlib.suppress(Exception):
|
|
51
|
-
sys.stderr.write(text + "\n")
|
|
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
|
|
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
|