Source code for data_juicer_agents.commands.dev_cmd

# -*- coding: utf-8 -*-
"""Implementation for `djx dev`."""

from __future__ import annotations

from data_juicer_agents.capabilities.dev.service import DevUseCase


[docs] def run_dev(args) -> int: if not args.intent.strip(): print("intent is required") return 2 if not args.operator_name.strip(): print("--operator-name is required") return 2 if not args.output_dir.strip(): print("--output-dir is required") return 2 result = DevUseCase.execute( intent=args.intent, operator_name=args.operator_name, output_dir=args.output_dir, operator_type=args.type, from_retrieve=args.from_retrieve, smoke_check=args.smoke_check, ) if not result.get("ok"): print(str(result.get("message", "dev scaffold generation failed"))) return 2 print("Custom operator scaffold generated:") print(f"- operator: {result.get('operator_name')}") print(f"- type: {result.get('operator_type')}") print(f"- class: {result.get('class_name')}") print(f"- output_dir: {result.get('output_dir')}") print("- generated files:") for path in result.get("generated_files", []): print(f" - {path}") print(f"- summary: {result.get('summary_path')}") for note in result.get("notes", []): print(f"Note: {note}") if args.smoke_check: smoke = result.get("smoke_check", {}) print(str(smoke.get("message", ""))) return 0 if bool(smoke.get("ok")) else 1 return 0