Provide implementations of advanced data structures
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Generate argparse-based Python CLI applications with subparsers, type converters, and standard library patterns. Creates lightweight Python CLIs without external dependencies.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Generate a complete argparse CLI application with Python standard library, subparsers, and best practices.
Invoke this skill when you need to:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectName | string | Yes | Name of the CLI project (kebab-case) |
| description | string | Yes | Short description of the CLI |
| commands | array | No | List of commands to scaffold |
| pythonVersion | string | No | Python version requirement (default: ">=3.8") |
| useSubparsers | boolean | No | Use subparsers for commands (default: true) |
{
"commands": [
{
"name": "convert",
"description": "Convert file formats",
"arguments": [
{ "name": "input", "help": "Input file path" },
{ "name": "output", "help": "Output file path", "nargs": "?" }
],
"options": [
{ "flags": ["-f", "--format"], "choices": ["json", "yaml", "xml"] },
{ "flags": ["-v", "--verbose"], "action": "store_true" }
]
}
]
}
<projectName>/
├── pyproject.toml
├── README.md
├── .gitignore
├── src/
│ └── <package_name>/
│ ├── __init__.py
│ ├── __main__.py # Entry point
│ ├── cli.py # Argparse setup
│ ├── commands/
│ │ ├── __init__.py
│ │ └── <command>.py # Command handlers
│ ├── types/
│ │ ├── __init__.py
│ │ └── converters.py # Custom type converters
│ └── utils/
│ ├── __init__.py
│ └── helpers.py # Helper functions
└── tests/
├── __init__.py
└── test_<command>.py
import argparse
import sys
from typing import Optional, Sequence
from .commands import convert, validate
def create_parser() -> argparse.ArgumentParser:
"""Create the argument parser with all subcommands."""
parser = argparse.ArgumentParser(
prog='<projectName>',
description='<description>',
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog='''
Examples:
%(prog)s convert input.json output.yaml
%(prog)s validate config.yaml --strict
'''
)
parser.add_argument(
'-v', '--verbose',
action='store_true',
help='Enable verbose output'
)
parser.add_argument(
'--version',
action='version',
version='%(prog)s 1.0.0'
)
# Create subparsers
subparsers = parser.add_subparsers(
dest='command',
title='commands',
description='Available commands',
help='Command to run'
)
# Register commands
convert.register_parser(subparsers)
validate.register_parser(subparsers)
return parser
def main(argv: Optional[Sequence[str]] = None) -> int:
"""Main entry point."""
parser = create_parser()
args = parser.parse_args(argv)
if args.command is None:
parser.print_help()
return 1
# Execute command
return args.func(args)
if __name__ == '__main__':
sys.exit(main())
import argparse
from pathlib import Path
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from argparse import _SubParsersAction
def register_parser(subparsers: '_SubParsersAction[argparse.ArgumentParser]') -> None:
"""Register the convert subparser."""
parser = subparsers.add_parser(
'convert',
help='Convert file formats',
description='Convert files between different formats.',
formatter_class=argparse.RawDescriptionHelpFormatter,
)
parser.add_argument(
'input',
type=Path,
help='Input file path'
)
parser.add_argument(
'output',
type=Path,
nargs='?',
help='Output file path (default: stdout)'
)
parser.add_argument(
'-f', '--format',
choices=['json', 'yaml', 'xml'],
default='json',
help='Output format (default: %(default)s)'
)
# Mutually exclusive group
group = parser.add_mutually_exclusive_group()
group.add_argument('--compact', action='store_true', help='Compact output')
group.add_argument('--pretty', action='store_true', help='Pretty print')
parser.set_defaults(func=execute)
def execute(args: argparse.Namespace) -> int:
"""Execute the convert command."""
print(f"Converting {args.input} to {args.format}")
if args.output:
print(f"Output: {args.output}")
return 0
import argparse
from pathlib import Path
def existing_file(value: str) -> Path:
"""Type converter for existing file paths."""
path = Path(value)
if not path.exists():
raise argparse.ArgumentTypeError(f"File not found: {value}")
if not path.is_file():
raise argparse.ArgumentTypeError(f"Not a file: {value}")
return path
def port_number(value: str) -> int:
"""Type converter for port numbers."""
try:
port = int(value)
except ValueError:
raise argparse.ArgumentTypeError(f"Invalid port number: {value}")
if not 1 <= port <= 65535:
raise argparse.ArgumentTypeError(f"Port must be 1-65535: {value}")
return port
[project]
name = "<projectName>"
version = "1.0.0"
requires-python = ">=3.8"
dependencies = [] # No external dependencies!
[project.optional-dependencies]
dev = [
"pytest>=7.0.0",
"pytest-cov>=4.0.0",
"mypy>=1.0.0",
]
[project.scripts]
<projectName> = "<package_name>.cli:main"
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Provide implementations of advanced data structures
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Fresh adversarial code review with binary PASS/FAIL verdicts, evidence citations, and anchoring bias prevention via fresh reviewer spawning.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
WASM-based instant code transforms for simple tasks, achieving 352x speedup over LLM inference with zero cost.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Coordinate Crew (persistent) and Polecat (transient) agents using Gas Town's hook-based work distribution and GUPP principle.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Generate visual representations of algorithm execution
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Hierarchical coordination and drift detection with frequent checkpoints, shared memory coherence validation, role specialization enforcement, and short task cycles.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.