diff --git a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/capture.py b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/capture.py index c0a2c4c..7e244c5 100644 --- a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/capture.py +++ b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/capture.py @@ -60,7 +60,7 @@ def auto_select_device(quiet: bool = False) -> str: all_devices = list_all_devices() if len(all_devices) == 0: - raise click.ClickException("No SDR devices found.\n" "Run 'utils discover' to see available devices.") + raise click.ClickException("No SDR devices found.\n" "Run 'ria discover' to see available devices.") elif len(all_devices) == 1: device = all_devices[0] @@ -96,7 +96,7 @@ def auto_select_device(quiet: bool = False) -> str: raise click.ClickException( f"Multiple devices found. Specify with --device\n\n" f"Available devices:\n{device_list}\n\n" - f"Run 'utils discover' for more details." + f"Run 'ria discover' for more details." ) @@ -301,8 +301,8 @@ def capture( \b Examples: - utils capture -d hackrf -s 2e6 -f 2.44e6 -b 2e6 - utils capture -d pluto -s 1e6 -f 2e9 -b 2e6 -n 50 + ria capture -d hackrf -s 2e6 -f 2.44e6 -b 2e6 + ria capture -d pluto -s 1e6 -f 2e9 -b 2e6 -n 50 """ diff --git a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/combine.py b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/combine.py index b37f910..3b8e915 100644 --- a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/combine.py +++ b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/combine.py @@ -394,21 +394,21 @@ def combine( \b Examples: # Concatenate recordings - utils combine chunk1.npy chunk2.npy chunk3.npy full.npy + ria combine chunk1.npy chunk2.npy chunk3.npy full.npy \b # Add signal and noise - utils combine signal.npy noise.npy noisy.npy --mode add\n + ria combine signal.npy noise.npy noisy.npy --mode add\n \b # Add with center alignment - utils combine long.npy short.npy output.npy --mode add --align-mode pad-center\n + ria combine long.npy short.npy output.npy --mode add --align-mode pad-center\n \b # Repeat pattern with spacing - utils combine signal.npy pattern.npy output.npy --mode add --align-mode repeat-spaced --repeat-spacing 10000 + ria combine signal.npy pattern.npy output.npy --mode add --align-mode repeat-spaced --repeat-spacing 10000 """ # Validate inputs if len(inputs) < 2: raise click.ClickException( - "Error: At least 2 input files required\n" "Usage: utils combine INPUT1 INPUT2 [INPUT3 ...] OUTPUT" + "Error: At least 2 input files required\n" "Usage: ria combine INPUT1 INPUT2 [INPUT3 ...] OUTPUT" ) # Special case: single input (though we require 2+ above, this handles edge case) diff --git a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/commands.py b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/commands.py index d90c127..6dde12a 100644 --- a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/commands.py +++ b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/commands.py @@ -1,6 +1,6 @@ # flake8: noqa: F401 """ -This module contains all the CLI bindings for the utils package. +This module contains all the CLI bindings for the ria package. """ from .capture import capture diff --git a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/config.py b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/config.py index 976f2c2..5ecd95d 100644 --- a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/config.py +++ b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/config.py @@ -1,4 +1,4 @@ -"""Configuration file utilities for Utils CLI. +"""Configuration file utilities for ria_toolkit_oss CLI. This module provides utilities for managing the user configuration file. The core integration (actually using these configs) is TODO for the core team. @@ -26,10 +26,10 @@ def get_config_path(config_path: Optional[str] = None) -> Path: # Try XDG_CONFIG_HOME first (Linux standard) xdg_config = os.environ.get("XDG_CONFIG_HOME") if xdg_config: - return Path(xdg_config) / "utils" / "config.yaml" + return Path(xdg_config) / "ria" / "config.yaml" - # Fall back to ~/.utils/config.yaml - return Path.home() / ".utils" / "config.yaml" + # Fall back to ~/.ria/config.yaml + return Path.home() / ".ria" / "config.yaml" def load_user_config(config_path: Optional[str] = None) -> Optional[dict]: @@ -73,9 +73,9 @@ def save_user_config(config: dict, config_path: Optional[str] = None) -> Path: # Write config with open(path, "w") as f: - f.write("# Utils SDR CLI Configuration\n") - f.write("# Auto-generated by 'utils init'\n") - f.write("# Edit with 'utils init' or modify this file directly\n\n") + f.write("# Ria SDR CLI Configuration\n") + f.write("# Auto-generated by 'ria init'\n") + f.write("# Edit with 'ria init' or modify this file directly\n\n") yaml.dump(config, f, default_flow_style=False, sort_keys=False) # Set secure permissions (user read/write only) @@ -162,7 +162,7 @@ def format_config_display(config: dict) -> str: # TODO for core team: Integration functions -# These will be implemented when wiring config into core utils logic +# These will be implemented when wiring config into core ria logic def merge_config(user_config: dict, cli_args: dict) -> dict: diff --git a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/convert.py b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/convert.py index aabbe46..3350117 100644 --- a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/convert.py +++ b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/convert.py @@ -101,22 +101,22 @@ def convert( # noqa: C901 \b Examples: # SigMF to NumPy (explicit output) - utils convert recording.sigmf-data output.npy + ria convert recording.sigmf-data output.npy \b # Auto-generate output filename - utils convert recording.npy --format sigmf + ria convert recording.npy --format sigmf \b # Convert to specific directory - utils convert long_path/recording.npy --format sigmf --output-dir converted + ria convert long_path/recording.npy --format sigmf --output-dir converted \b # NumPy to WAV with decimation - utils convert high_rate.npy audio.wav --wav-sample-rate 48000 + ria convert high_rate.npy audio.wav --wav-sample-rate 48000 \b # Legacy NPY to SigMF - utils convert old.npy --format sigmf --legacy --overwrite + ria convert old.npy --format sigmf --legacy --overwrite \b # Add metadata during conversion - utils convert raw.npy --format sigmf --metadata "location=lab" --metadata "antenna=dipole" + ria convert raw.npy --format sigmf --metadata "location=lab" --metadata "antenna=dipole" """ # Generate output filename if not provided @@ -125,8 +125,8 @@ def convert( # noqa: C901 raise click.ClickException( "Either OUTPUT or --format must be specified\n" "Examples:\n" - " utils convert input.npy output.sigmf\n" - " utils convert input.npy --format sigmf" + " ria convert input.npy output.sigmf\n" + " ria convert input.npy --format sigmf" ) # Get input filename without extension diff --git a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/discover.py b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/discover.py index 03e45d3..f94f4ef 100644 --- a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/discover.py +++ b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/discover.py @@ -31,12 +31,12 @@ def load_sdr_drivers(verbose: bool = False) -> Tuple[List[str], List[str], Dict[ # Try to import each SDR driver drivers = { - "pluto": "utils.sdr.pluto", - "hackrf": "utils.sdr.hackrf", - "bladerf": "utils.sdr.bladerf", - "usrp": "utils.sdr.usrp", - "rtlsdr": "utils.sdr.rtlsdr", - "thinkrf": "utils.sdr.thinkrf", + "pluto": "ria_toolkit_oss.sdr.pluto", + "hackrf": "ria_toolkit_oss.sdr.hackrf", + "bladerf": "ria_toolkit_oss.sdr.bladerf", + "usrp": "ria_toolkit_oss.sdr.usrp", + "rtlsdr": "ria_toolkit_oss.sdr.rtlsdr", + "thinkrf": "ria_toolkit_oss.sdr.thinkrf", } for driver_name, module_path in drivers.items(): diff --git a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/init.py b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/init.py index 2ae4c5e..754fb87 100644 --- a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/init.py +++ b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/init.py @@ -33,7 +33,7 @@ def prompt_with_default(text: str, default: str = "") -> str: def init_show(config_file_path, config_path): if not config_file_path.exists(): click.echo(f"No configuration file found at: {config_file_path}") - click.echo("\nRun 'utils init' to create a configuration.") + click.echo("\nRun 'ria init' to create a configuration.") return try: @@ -43,11 +43,11 @@ def init_show(config_file_path, config_path): click.echo() click.echo(format_config_display(config)) click.echo() - click.echo("To update: utils init") - click.echo("To reset: utils init --reset") + click.echo("To update: ria init") + click.echo("To reset: ria init --reset") except Exception as e: click.echo(f"Error reading configuration: {e}", err=True) - click.echo("\nRun 'utils init --reset' to recreate the configuration.") + click.echo("\nRun 'ria init --reset' to recreate the configuration.") def init_reset(config_file_path, config_path, yes): @@ -78,7 +78,7 @@ def init_reset(config_file_path, config_path, yes): try: config_file_path.unlink() click.echo("\n✓ Configuration deleted.") - click.echo("\nRun 'utils init' to create a new configuration.") + click.echo("\nRun 'ria init' to create a new configuration.") except Exception as e: click.echo(f"Error deleting configuration: {e}", err=True) @@ -123,8 +123,8 @@ def save_config(config, config_path, use_interactive, warnings): if use_interactive: click.echo() - click.echo("You can view your config anytime with: utils init --show") - click.echo("You can update values by running: utils init") + click.echo("You can view your config anytime with: ria init --show") + click.echo("You can update values by running: ria init") # Show warnings in non-interactive mode elif warnings: @@ -176,26 +176,26 @@ def init( ): """Initialize user configuration. - Creates a configuration file at ~/.utils/config.yaml with default metadata + Creates a configuration file at ~/.ria/config.yaml with default metadata values that will be used across CLI commands. Examples: \b # Interactive setup - utils init + ria init \b # Non-interactive setup - utils init --author "Jane Doe" --project "RF_Analysis" --location "Lab_A" + ria init --author "Jane Doe" --project "RF_Analysis" --location "Lab_A" \b # Show current configuration - utils init --show + ria init --show \b # Reset configuration - utils init --reset + ria init --reset """ config_file_path = get_config_path(config_path) @@ -232,13 +232,13 @@ def init( # Interactive mode if use_interactive: click.echo() - click.echo("Welcome to Utils SDR CLI Configuration!") + click.echo("Welcome to RIA Toolkit Oss SDR CLI Configuration!") click.echo("=" * 60) click.echo() click.echo(f"This will create a configuration file at: {config_file_path}") click.echo() click.echo("These values will be automatically added to recordings and conversions.") - click.echo("You can always change these later by running 'utils init' again.") + click.echo("You can always change these later by running 'ria init' again.") click.echo() click.echo("Press Enter to skip optional fields.") click.echo() diff --git a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/split.py b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/split.py index 2e0b0a0..6fd4c23 100644 --- a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/split.py +++ b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/split.py @@ -101,35 +101,35 @@ def split( # noqa: C901 \b Examples: # Split at specific sample - utils split recording.sigmf --split-at 500000 --output-dir split_output + ria split recording.sigmf --split-at 500000 --output-dir split_output \b # Split into equal chunks - utils split capture.npy --split-every 100000 --output-dir chunks + ria split capture.npy --split-every 100000 --output-dir chunks \b # Split by duration (requires sample_rate in metadata) - utils split recording.sigmf --split-duration 1.0 --output-dir segments + ria split recording.sigmf --split-duration 1.0 --output-dir segments \b # Trim recording - utils split signal.npy --trim --start 1000 --length 5000 --output-dir trimmed + ria split signal.npy --trim --start 1000 --length 5000 --output-dir trimmed \b # Trim with end index - utils split signal.npy --trim --start 1000 --end 6000 --output-dir trimmed + ria split signal.npy --trim --start 1000 --end 6000 --output-dir trimmed \b # Extract all annotated regions - utils split annotated.sigmf --extract-annotations --output-dir annotations + ria split annotated.sigmf --extract-annotations --output-dir annotations \b # Extract specific annotation label - utils split annotated.sigmf --extract-annotations --annotation-label "payload" + ria split annotated.sigmf --extract-annotations --annotation-label "payload" \b # Extract specific annotation by index - utils split annotated.sigmf --extract-annotations --annotation-index 1 + ria split annotated.sigmf --extract-annotations --annotation-index 1 """ # Validate operation selection @@ -342,7 +342,7 @@ def split( # noqa: C901 # Extract annotated regions if not recording.annotations: raise click.ClickException( - "No annotations found in recording\n" "Use 'utils annotate' to add annotations first" + "No annotations found in recording\n" "Use 'ria annotate' to add annotations first" ) # Filter annotations diff --git a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/transmit.py b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/transmit.py index 4ef8e60..db57b78 100644 --- a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/transmit.py +++ b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/transmit.py @@ -57,7 +57,7 @@ def auto_select_tx_device(quiet: bool = False) -> str: raise click.ClickException( "No TX-capable SDR devices found.\n" "TX-capable devices: PlutoSDR, HackRF, BladeRF, USRP\n" - "Run 'utils discover' to see all devices." + "Run 'ria discover' to see all devices." ) elif len(tx_devices) == 1: @@ -92,7 +92,7 @@ def auto_select_tx_device(quiet: bool = False) -> str: raise click.ClickException( f"Multiple TX-capable devices found. Specify with --device\n\n" f"Available TX devices:\n{device_list}\n\n" - f"Run 'utils discover' for more details." + f"Run 'ria discover' for more details." ) @@ -377,8 +377,8 @@ def transmit( \b Examples: - utils transmit -d hackrf --generate lfm --continuous - utils transmit -d pluto -f 2.44G -g -10 -in recordings/rec_HackRF_2MHz_2025-12-01_15-36-21_80fc33f.sigmf-data + ria transmit -d hackrf --generate lfm --continuous + ria transmit -d pluto -f 2.44G -g -10 -in recordings/rec_HackRF_2MHz_2025-12-01_15-36-21_80fc33f.sigmf-data """ diff --git a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/view.py b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/view.py index ee6dc01..8e0b51f 100644 --- a/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/view.py +++ b/src/ria_toolkit_oss/ria_toolkit_oss_cli/ria_toolkit_oss/view.py @@ -277,25 +277,25 @@ def view( \b Examples: # Basic visualization (saves to recording.png) - utils view recording.sigmf + ria view recording.sigmf \b # Spectrogram with custom output - utils view capture.npy --output spec.png + ria view capture.npy --output spec.png \b # Interactive display - utils view signal.npy --show --no-save + ria view signal.npy --show --no-save \b # High-resolution PDF - utils view recording.blue --format pdf --dpi 600 + ria view recording.blue --format pdf --dpi 600 \b # Simple mode with constellation - utils view qam.wav --type simple --constellation --labels + ria view qam.wav --type simple --constellation --labels \b # Full-featured plot - utils view capture.sigmf --type full --title "Lab Test" + ria view capture.sigmf --type full --title "Lab Test" \b # Legacy NPY file - utils view old_capture.npy --legacy --type simple + ria view old_capture.npy --legacy --type simple """ # Load config file if specified if config: