Skip to content

sc4rfurry/argonaut

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ArgøNaut: Advanced Argument Parsing Library

ArgøNaut Logo

GitHub stars GitHub issues License


📚 Table of Contents

  1. Introduction
  2. Features
  3. Installation
  4. Quick Start
  5. Advanced Usage
  6. Plugin System
  7. API Reference
  8. Examples
  9. Contributing
  10. 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):
      # Asynchronous execution method
      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.

About

A custom argument parsing library for CLI applications with a focus on simplicity and ease of use.

Topics

Resources

License

Stars

Watchers

Forks