""" Dataset management tool for operations NOT requiring Isaac Sim (SimulationApp). This script handles dataset operations that do not require the Isaac Sim application: - inspect: Inspect dataset metadata - read: Read dataset states - augment: Add end-effector pose to dataset - merge: Merge multiple datasets For operations requiring Isaac Sim (record, replay), use dataset_sim.py instead.""" import argparse from pathlib import Path from .utils import ( dataset_inspection, dataset_processing, setup_inspect_parser, setup_read_parser, setup_augment_parser, setup_merge_parser, ) def main(): """Main entry point for dataset management tool (no Isaac Sim required).""" parser = argparse.ArgumentParser( description="LeHome dataset management tool (no Isaac Sim required)", formatter_class=argparse.RawDescriptionHelpFormatter, epilog="Note: For operations requiring Isaac Sim (record, replay), use dataset_sim.py instead.", ) subparsers = parser.add_subparsers( dest="command", help="Available commands", required=True ) setup_inspect_parser(subparsers) setup_read_parser(subparsers) setup_augment_parser(subparsers) setup_merge_parser(subparsers) args = parser.parse_args() if args.command == "inspect": dataset_inspection.inspect( Path(args.dataset_root), show_frames=args.show_frames, show_stats=args.show_stats, ) elif args.command == "read": dataset_inspection.read_states( Path(args.dataset_root), num_frames=args.num_frames, episode=args.episode, output_csv=args.output_csv, show_stats=args.show_stats, ) elif args.command == "augment": dataset_processing.augment_ee_pose( Path(args.dataset_root).resolve(), Path(args.urdf_path).resolve(), state_unit=args.state_unit, output_root=Path(args.output_root).resolve() if args.output_root else None, overwrite=args.overwrite, ) elif args.command == "merge": import ast source_roots = [Path(p) for p in ast.literal_eval(args.source_roots)] dataset_processing.merge_datasets( source_roots, Path(args.output_root), output_repo_id=args.output_repo_id, merge_custom_meta=args.merge_custom_meta, ) if __name__ == "__main__": main()