From bee93809e32b8fdd7e0ba14a1366321d1424cd0d Mon Sep 17 00:00:00 2001 From: Seyon Sivarajah Date: Mon, 17 Nov 2025 17:56:59 +0000 Subject: [PATCH] refactor(cli)!: remove deprecated hugr_json handling BREAKING CHANGE: --hugr-json parameter removed from cli, use package envelopes. --- hugr-cli/src/hugr_io.rs | 30 ------------------------------ hugr-cli/src/mermaid.rs | 6 +----- hugr-cli/src/validate.rs | 32 +++++++------------------------- 3 files changed, 8 insertions(+), 60 deletions(-) diff --git a/hugr-cli/src/hugr_io.rs b/hugr-cli/src/hugr_io.rs index b41c8d056..ea9631bce 100644 --- a/hugr-cli/src/hugr_io.rs +++ b/hugr-cli/src/hugr_io.rs @@ -33,32 +33,17 @@ pub struct HugrInputArgs { help = "Paths to additional serialised extensions needed to load the Hugr." )] pub extensions: Vec, - /// Read the input as a HUGR JSON file instead of an envelope. - /// - /// This is a legacy option for reading old HUGR files. - #[clap(long, help_heading = "Input")] - pub hugr_json: bool, } impl HugrInputArgs { /// Read a hugr envelope from the input and return the package encoded /// within. - /// - /// # Errors - /// - /// If [`HugrInputArgs::hugr_json`] is `true`, [`HugrInputArgs::get_hugr`] should be called instead as - /// reading the input as a package will fail. pub fn get_package(&mut self) -> Result { self.get_described_package().map(|(_, package)| package) } /// Read a hugr envelope from the input and return the envelope /// description and the decoded package. - /// - /// # Errors - /// - /// If [`HugrInputArgs::hugr_json`] is `true`, [`HugrInputArgs::get_hugr`] should be called instead as - /// reading the input as a package will fail. pub fn get_described_package(&mut self) -> Result<(PackageDesc, Package), CliError> { self.get_described_package_with_reader::<&[u8]>(None) } @@ -67,11 +52,6 @@ impl HugrInputArgs { /// description and the decoded package. /// /// If `reader` is `None`, reads from the input specified in the args. - /// - /// # Errors - /// - /// If [`HugrInputArgs::hugr_json`] is `true`, [`HugrInputArgs::get_hugr`] should be called instead as - /// reading the input as a package will fail. pub fn get_described_package_with_reader( &mut self, reader: Option, @@ -89,16 +69,6 @@ impl HugrInputArgs { } } } - /// Read a hugr JSON file from the input. - /// - /// This is a legacy option for reading old HUGR JSON files when the - /// [`HugrInputArgs::hugr_json`] flag is used. - /// - /// For most cases, [`HugrInputArgs::get_package`] should be called instead. - #[deprecated(note = "Use `HugrInputArgs::get_package` instead.", since = "0.22.2")] - pub fn get_hugr(&mut self) -> Result { - self.get_hugr_with_reader::<&[u8]>(None) - } /// Read a hugr JSON file from an optional reader. /// diff --git a/hugr-cli/src/mermaid.rs b/hugr-cli/src/mermaid.rs index 50a4a79af..e3e295d14 100644 --- a/hugr-cli/src/mermaid.rs +++ b/hugr-cli/src/mermaid.rs @@ -43,11 +43,7 @@ impl MermaidArgs { input_override: Option, output_override: Option, ) -> Result<()> { - if self.input_args.hugr_json { - self.run_print_hugr_with_io(input_override, output_override) - } else { - self.run_print_envelope_with_io(input_override, output_override) - } + self.run_print_envelope_with_io(input_override, output_override) } /// Write the mermaid diagram for a HUGR envelope with optional I/O overrides. diff --git a/hugr-cli/src/validate.rs b/hugr-cli/src/validate.rs index 3e78d2bc8..5c08823e4 100644 --- a/hugr-cli/src/validate.rs +++ b/hugr-cli/src/validate.rs @@ -2,8 +2,6 @@ use anyhow::Result; use clap::Parser; -use hugr::package::PackageValidationError; -use hugr::{HugrView, Node}; use std::io::Read; #[cfg(feature = "tracing")] use tracing::info; @@ -35,24 +33,13 @@ impl ValArgs { /// If provided, this reader will be used for input instead of /// `self.input_args.input`. pub fn run_with_input(&mut self, input_override: Option) -> Result<()> { - if self.input_args.hugr_json { - #[allow(deprecated)] - let hugr = self.input_args.get_hugr_with_reader(input_override)?; - let generator = get_generator(&hugr); - - hugr.validate() - .map_err(PackageValidationError::Validation) - .map_err(|val_err| CliError::validation(generator, val_err))?; - } else { - let (desc, package) = self - .input_args - .get_described_package_with_reader(input_override)?; - let generator = desc.generator(); - package - .validate() - .map_err(|val_err| CliError::validation(generator, val_err))?; - }; - + let (desc, package) = self + .input_args + .get_described_package_with_reader(input_override)?; + let generator = desc.generator(); + package + .validate() + .map_err(|val_err| CliError::validation(generator, val_err))?; #[cfg(feature = "tracing")] info!("{VALID_PRINT}"); #[cfg(not(feature = "tracing"))] @@ -66,8 +53,3 @@ impl ValArgs { self.run_with_input(None::<&[u8]>) } } - -fn get_generator(hugr: &impl HugrView) -> Option { - let mod_desc: hugr::envelope::description::ModuleDesc = hugr.into(); - mod_desc.generator -}