Source code for skill_creator_mcp.utils.file_ops

"""文件操作工具函数."""

import asyncio
from pathlib import Path


[docs] async def create_directory_structure_async( name: str, template_type: str, output_dir: Path, ) -> Path: """异步创建技能目录结构. Args: name: 技能名称 template_type: 模板类型 output_dir: 输出目录 Returns: 创建的技能目录路径 """ skill_dir = output_dir / name # 创建主目录和子目录 directories = [ skill_dir, skill_dir / "references", skill_dir / "examples", skill_dir / "scripts", skill_dir / ".claude", ] for directory in directories: directory.mkdir(parents=True, exist_ok=True) return skill_dir
[docs] def create_directory_structure( name: str, template_type: str, output_dir: Path, ) -> Path: """同步创建技能目录结构. Args: name: 技能名称 template_type: 模板类型 output_dir: 输出目录 Returns: 创建的技能目录路径 """ skill_dir = output_dir / name # 创建主目录和子目录 directories = [ skill_dir, skill_dir / "references", skill_dir / "examples", skill_dir / "scripts", skill_dir / ".claude", ] for directory in directories: directory.mkdir(parents=True, exist_ok=True) return skill_dir
[docs] async def write_file_async( file_path: Path, content: str, encoding: str = "utf-8", ) -> None: """异步写入文件. Args: file_path: 文件路径 content: 文件内容 encoding: 文件编码 """ # 使用 asyncio.to_thread 在单独的线程中执行 I/O 操作 await asyncio.to_thread(file_path.write_text, content, encoding)
[docs] def write_file( file_path: Path, content: str, encoding: str = "utf-8", ) -> None: """同步写入文件. Args: file_path: 文件路径 content: 文件内容 encoding: 文件编码 """ file_path.write_text(content, encoding)
[docs] async def read_file_async( file_path: Path, encoding: str = "utf-8", ) -> str: """异步读取文件. Args: file_path: 文件路径 encoding: 文件编码 Returns: 文件内容 """ return await asyncio.to_thread(file_path.read_text, encoding)
[docs] def read_file( file_path: Path, encoding: str = "utf-8", ) -> str: """同步读取文件. Args: file_path: 文件路径 encoding: 文件编码 Returns: 文件内容 """ return file_path.read_text(encoding)