Files
wehub-resource-sync 4b6817381b
Benchmark image — build + push to ECR (any adapter) / build + push (push) Waiting to run
CI / quality (ubuntu-latest) (push) Waiting to run
CI / test (tools-runtime) (push) Waiting to run
CI / test (e2e-general) (push) Waiting to run
CI / test (cli-runtime) (push) Waiting to run
CI / test (e2e-provider-and-openclaw) (push) Waiting to run
CI / test (integrations-and-misc) (push) Waiting to run
CI / coverage-report (push) Blocked by required conditions
CI / test-kubernetes (push) Waiting to run
CI / should-run-thorough (push) Waiting to run
CI / test-thorough (cloudwatch-demo) (push) Blocked by required conditions
CI / test-thorough (flink-ecs) (push) Blocked by required conditions
CI / test-thorough (upstream-lambda) (push) Blocked by required conditions
CI / test-thorough (prefect-ecs-fargate) (push) Blocked by required conditions
CodeQL / Analyze (python) (push) Waiting to run
Release / build-binaries (zip, opensre.exe, onefile, windows-latest, windows-x64) (push) Blocked by required conditions
Release / publish-release (push) Blocked by required conditions
Release / publish-main-release (push) Blocked by required conditions
Release / prepare (push) Waiting to run
Release / verify (push) Blocked by required conditions
Release / build-python-dist (push) Blocked by required conditions
Release / build-binaries (tar.gz, opensre, onedir, macos-15-intel, darwin-x64) (push) Blocked by required conditions
Release / build-binaries (tar.gz, opensre, onedir, macos-latest, darwin-arm64) (push) Blocked by required conditions
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04, linux-x64) (push) Blocked by required conditions
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04-arm, linux-arm64) (push) Blocked by required conditions
Synthetic Deterministic Tests / Synthetic offline (deterministic) (push) Waiting to run
Interactive Shell Live (PR + post-merge) / turn-checks (no-LLM) (push) Waiting to run
Interactive Shell Live (PR + post-merge) / turn-live shard ${{ matrix.shard_index }} (push) Waiting to run
CI (OpenClaw E2E) / openclaw test (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:10:45 +08:00

81 lines
2.0 KiB
Python

"""Process-wide CLI runtime flags (json, verbose, yes, interactive).
Lives in ``platform/common`` so integrations and tools can read the same flag
contract without importing the CLI package. The CLI root callback populates
these via :func:`cli.runtime_flags.sync_runtime_flags_from_click`.
"""
from __future__ import annotations
import os
from dataclasses import dataclass
@dataclass
class RuntimeFlags:
json: bool = False
verbose: bool = False
debug: bool = False
yes: bool = False
interactive: bool = True
_flags = RuntimeFlags()
def configure_runtime_flags(
*,
json: bool | None = None,
verbose: bool | None = None,
debug: bool | None = None,
yes: bool | None = None,
interactive: bool | None = None,
) -> None:
"""Replace one or more runtime flags (used by the CLI click bridge)."""
global _flags
updates: dict[str, bool] = {}
if json is not None:
updates["json"] = json
if verbose is not None:
updates["verbose"] = verbose
if debug is not None:
updates["debug"] = debug
if yes is not None:
updates["yes"] = yes
if interactive is not None:
updates["interactive"] = interactive
if updates:
_flags = RuntimeFlags(**{**_flags.__dict__, **updates})
def reset_runtime_flags() -> None:
global _flags
_flags = RuntimeFlags()
def is_interactive_env() -> bool:
"""True unless OPENSRE_INTERACTIVE=0 in env or interactive=False."""
if os.environ.get("OPENSRE_INTERACTIVE") == "0":
return False
return _flags.interactive
def is_json_output() -> bool:
"""True when the user passed ``--json`` / ``-j``."""
return _flags.json
def is_verbose() -> bool:
"""True when the user passed ``--verbose``."""
return _flags.verbose
def is_debug() -> bool:
"""True when the user passed ``--debug``."""
return _flags.debug
def is_yes() -> bool:
"""True when the user passed ``--yes`` / ``-y``."""
return _flags.yes