Skip to content

Commit 6cb31fa

Browse files
authored
Fix CLI formatting drift (#1)
1 parent e6fe0bf commit 6cb31fa

3 files changed

Lines changed: 17 additions & 35 deletions

File tree

src/xian_cli/cli.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,8 @@ def _effective_node_release_manifest(
160160
profile_manifest = profile.get("node_release_manifest")
161161
if isinstance(profile_manifest, dict):
162162
return profile_manifest
163-
network_manifest = None if network is None else network.get(
164-
"node_release_manifest"
163+
network_manifest = (
164+
None if network is None else network.get("node_release_manifest")
165165
)
166166
return network_manifest if isinstance(network_manifest, dict) else None
167167

@@ -2263,9 +2263,7 @@ def _summarize_node_status(result: dict[str, object]) -> dict[str, object]:
22632263
"node_integrated_image": result.get("profile", {}).get(
22642264
"node_integrated_image"
22652265
),
2266-
"node_split_image": result.get("profile", {}).get(
2267-
"node_split_image"
2268-
),
2266+
"node_split_image": result.get("profile", {}).get("node_split_image"),
22692267
}
22702268

22712269
release_manifest = result.get("node_release_manifest")
@@ -3441,8 +3439,7 @@ def build_parser() -> argparse.ArgumentParser:
34413439
"--node-image-mode",
34423440
choices=sorted(SUPPORTED_NODE_IMAGE_MODES),
34433441
help=(
3444-
"node image source override; defaults to the network manifest "
3445-
"value"
3442+
"node image source override; defaults to the network manifest value"
34463443
),
34473444
)
34483445
join_parser.add_argument(

src/xian_cli/models.py

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -129,19 +129,15 @@ def _normalize_node_release_manifest(
129129
if not isinstance(value, dict):
130130
raise ValueError(f"{key} must be an object when provided")
131131
if value.get("schema_version") != SCHEMA_VERSION:
132-
raise ValueError(
133-
f"{key}.schema_version must be {SCHEMA_VERSION}"
134-
)
132+
raise ValueError(f"{key}.schema_version must be {SCHEMA_VERSION}")
135133

136134
components_raw = value.get("components")
137135
if not isinstance(components_raw, dict) or not components_raw:
138136
raise ValueError(f"{key}.components must be a non-empty object")
139137
components: dict[str, dict[str, str]] = {}
140138
for component_name, component in components_raw.items():
141139
if not isinstance(component_name, str) or not component_name:
142-
raise ValueError(
143-
f"{key}.components keys must be non-empty strings"
144-
)
140+
raise ValueError(f"{key}.components keys must be non-empty strings")
145141
if not isinstance(component, dict):
146142
raise ValueError(
147143
f"{key}.components.{component_name} must be an object"
@@ -205,9 +201,7 @@ def _require_node_image_mode(payload: dict, key: str) -> str:
205201
return value
206202

207203

208-
def _require_optional_node_image_mode(
209-
payload: dict, key: str
210-
) -> str | None:
204+
def _require_optional_node_image_mode(payload: dict, key: str) -> str | None:
211205
value = payload.get(key)
212206
if value is None:
213207
return None
@@ -231,9 +225,7 @@ def _validate_node_image_config(
231225
"node_integrated_image and node_split_image require "
232226
"node_image_mode=registry"
233227
)
234-
if mode == "registry" and (
235-
integrated_image is None or split_image is None
236-
):
228+
if mode == "registry" and (integrated_image is None or split_image is None):
237229
raise ValueError(
238230
"registry node image mode requires both "
239231
"node_integrated_image and node_split_image"
@@ -333,9 +325,7 @@ def normalize_node_profile(payload: dict) -> dict:
333325

334326
node_image_mode, node_integrated_image, node_split_image = (
335327
_validate_node_image_config(
336-
mode=_require_optional_node_image_mode(
337-
payload, "node_image_mode"
338-
),
328+
mode=_require_optional_node_image_mode(payload, "node_image_mode"),
339329
integrated_image=_require_optional_str(
340330
payload, "node_integrated_image"
341331
),

tests/test_cli.py

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@
4545
WORKSPACE_ROOT / "xian-configs" / "networks" / "devnet" / "genesis.json"
4646
)
4747
CANONICAL_NODE_RELEASE_MANIFEST = json.loads(
48-
(
49-
WORKSPACE_ROOT / "xian-stack" / "release-manifest.json"
50-
).read_text(encoding="utf-8")
48+
(WORKSPACE_ROOT / "xian-stack" / "release-manifest.json").read_text(
49+
encoding="utf-8"
50+
)
5151
)
5252
CANONICAL_RELEASE_INTEGRATED_IMAGE = (
5353
"ghcr.io/xian-technology/xian-node@sha256:"
@@ -234,8 +234,7 @@ def test_read_network_manifest_rejects_incomplete_registry_image_config(
234234
"runtime_backend": "xian-stack",
235235
"node_image_mode": "registry",
236236
"node_integrated_image": (
237-
"ghcr.io/xian-technology/"
238-
"xian-node@sha256:abc"
237+
"ghcr.io/xian-technology/xian-node@sha256:abc"
239238
),
240239
"genesis_source": "./genesis.json",
241240
"snapshot_url": None,
@@ -475,12 +474,10 @@ def test_network_join_uses_canonical_manifest_defaults(self) -> None:
475474
"tracer_mode": "native_instruction_v1",
476475
"node_image_mode": "registry",
477476
"node_integrated_image": (
478-
"ghcr.io/xian-technology/"
479-
"xian-node@sha256:abc"
477+
"ghcr.io/xian-technology/xian-node@sha256:abc"
480478
),
481479
"node_split_image": (
482-
"ghcr.io/xian-technology/"
483-
"xian-node-split@sha256:def"
480+
"ghcr.io/xian-technology/xian-node-split@sha256:def"
484481
),
485482
"node_release_manifest": (
486483
CANONICAL_NODE_RELEASE_MANIFEST
@@ -661,12 +658,10 @@ def test_network_join_drops_release_manifest_for_local_build_override(
661658
"tracer_mode": "python_line_v1",
662659
"node_image_mode": "registry",
663660
"node_integrated_image": (
664-
"ghcr.io/xian-technology/"
665-
"xian-node@sha256:abc"
661+
"ghcr.io/xian-technology/xian-node@sha256:abc"
666662
),
667663
"node_split_image": (
668-
"ghcr.io/xian-technology/"
669-
"xian-node-split@sha256:def"
664+
"ghcr.io/xian-technology/xian-node-split@sha256:def"
670665
),
671666
"node_release_manifest": (
672667
CANONICAL_NODE_RELEASE_MANIFEST

0 commit comments

Comments
 (0)