ArgøNaut: Advanced Argument Parsing Library
📚 Table of Contents
- Introduction
- Features
- Installation
- Quick Start
- Advanced Usage
- Plugin System
- API Reference
- Examples
- Contributing
- License
🚀 Introduction
ArgøNaut is a sophisticated and flexible command-line argument parsing library for Python applications. It extends the capabilities of standard argument parsing libraries with advanced features, a robust plugin system, and cross-platform compatibility.
✨ Features
- 🎨 Intuitive API for defining and parsing arguments
- 🌳 Support for subcommands and nested command structures
- 🔌 Robust plugin system for extensibility
- 💻 Cross-platform compatibility (Windows, macOS, Linux)
- 🛡️ Advanced input sanitization and error handling
- 📚 Customizable help generation and formatting
- 🐚 Shell completion script generation for multiple shells
- 📊 Progress bar and colored output capabilities
- 📁 Configuration file support (YAML, JSON)
- 🌿 Environment variable integration
- 📘 Automatic man page generation
- ⚡ Asynchronous support for argument parsing and plugin execution
📦 Installation
Install ArgøNaut using pip:
pip install argonautCli
🚀 Quick Start
from argonaut import Argonaut
parser = Argonaut(description="My awesome CLI tool")
parser.add("--name", help="Your name")
parser.add("--age", type=int, help="Your age")
args = parser.parse()
print(f"Hello, {args['name']}! You are {args['age']} years old.")
🔧 Advanced Usage
Asynchronous Support
import asyncio
from argonaut import Argonaut
parser = Argonaut()
parser.add("--async-option", help="An async option")
async def main():
args = await parser.parse_async()
result = await parser.execute_plugin_async("my_plugin", args)
print(result)
Environment Variables
from argonaut import Argonaut
parser = Argonaut()
parser.add("--api-key", env_var="API_KEY", help="API key (can be set via API_KEY env var)")
args = parser.parse()
print(f"API Key: {args['api_key']}")
🔌 Plugin System
ArgøNaut features a powerful plugin system that allows you to extend the functionality of your CLI applications.
from argonaut import Plugin, PluginMetadata
import asyncio
class MyPlugin(Plugin):
@property
def metadata(self) -> PluginMetadata:
return PluginMetadata(
name="my_plugin",
version="1.0.0",
description="A sample plugin for ArgøNaut",
author="Your Name",
website="https://example.com",
tags=["sample", "demo"]
)
def initialize(self, context):
self.context = context
def execute(self, args):
return f"Hello from MyPlugin! Args: {args}"
async def execute_async(self, args):
return await some_async_operation(args)
def on_load(self):
print("Plugin loaded")
def on_unload(self):
print("Plugin unloaded")
def on_command_execution(self, command):
print(f"Command '{command}' is being executed")
📚 API Reference
For a complete API reference, please visit our documentation.
📋 Examples
For more examples, please refer to the examples directory in the repository.
🤝 Contributing
We welcome contributions to ArgøNaut! Please see our Contributing Guide for more details on how to get started.
📄 License
ArgøNaut is released under the MIT License. See the LICENSE file for full details.
For more information and detailed documentation, visit ArgøNaut's Documentation.