Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 0 additions & 30 deletions hugr-cli/src/hugr_io.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,32 +33,17 @@ pub struct HugrInputArgs {
help = "Paths to additional serialised extensions needed to load the Hugr."
)]
pub extensions: Vec<PathBuf>,
/// 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<Package, CliError> {
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)
}
Expand All @@ -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<R: Read>(
&mut self,
reader: Option<R>,
Expand All @@ -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<Hugr, CliError> {
self.get_hugr_with_reader::<&[u8]>(None)
}

/// Read a hugr JSON file from an optional reader.
///
Expand Down
6 changes: 1 addition & 5 deletions hugr-cli/src/mermaid.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,7 @@ impl MermaidArgs {
input_override: Option<R>,
output_override: Option<W>,
) -> 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.
Expand Down
32 changes: 7 additions & 25 deletions hugr-cli/src/validate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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<R: Read>(&mut self, input_override: Option<R>) -> 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"))]
Expand All @@ -66,8 +53,3 @@ impl ValArgs {
self.run_with_input(None::<&[u8]>)
}
}

fn get_generator(hugr: &impl HugrView<Node = Node>) -> Option<String> {
let mod_desc: hugr::envelope::description::ModuleDesc = hugr.into();
mod_desc.generator
}
Loading