biors 0.58.0

Command-line tools for bio-rs biological AI model input workflows.
use crate::cli::{TokenizerCommand, TokenizerProfileArg};
use crate::errors::CliError;
use crate::input::read_tokenizer_config;
use crate::output::print_success;
use biors_core::tokenizer::{
    inspect_protein_tokenizer_config, protein_tokenizer_config_for_profile, ProteinTokenizerConfig,
};
use std::path::PathBuf;

pub(super) fn run_tokenizer_command(command: TokenizerCommand) -> Result<(), CliError> {
    match command {
        TokenizerCommand::ConvertHf { path, output } => {
            crate::cli::tokenizer_convert::run_tokenizer_convert_hf(path, output)
        }
        TokenizerCommand::Inspect { profile, config } => {
            let config = resolve_tokenizer_config(profile, config)?;
            print_success(None, inspect_protein_tokenizer_config(&config))
        }
    }
}

pub(super) fn resolve_tokenizer_config(
    profile: TokenizerProfileArg,
    config: Option<PathBuf>,
) -> Result<ProteinTokenizerConfig, CliError> {
    match config {
        Some(path) => read_tokenizer_config(path),
        None => Ok(protein_tokenizer_config_for_profile(profile.into())),
    }
}