Command line argument parsing is a crucial aspect of many Python applications. It allows users to pass in options and parameters to control the behavior of the program. While the built-in argparse
module provides a powerful solution, it can be cumbersome to use and lacks certain features. That’s where argdeco
, an opinionated argparse
wrapper, comes in.
What is argdeco?
argdeco
is a command line utility library that simplifies and enhances the process of parsing command line arguments in Python. It was created to address the shortcomings of existing libraries and provide a more streamlined experience for developers. With argdeco
, you can enjoy the benefits of a fully typed API using official typeshed
argparse
stubs, support for class callback method decoration, and method instance binding.
Installation
To start using argdeco
, you can install it directly from the Python Package Index (PyPI). It is recommended to install it into a virtual environment using pip
:
sh
$ python -m pip install argdeco-josugoar
Getting Started
To begin using argdeco
, you can create a new ArgumentParser
object using the argdeco.argument_parser()
decorator. This decorator wraps the standard argparse.ArgumentParser
class, allowing you to use the same API but with additional features:
In this example, the parser
function becomes an ArgumentParser
object, and you can add arguments to it using the argdeco.add_argument()
decorator.
Advanced Usage
argdeco
provides several advanced usage options to fine-tune your command line argument parsing. For example, you can access attributes of the ArgumentParser
object using the .__wrapped__
attribute:
@argdeco.argument_parser()
def prog(self):
pass
prog.wrapped
Additionally, you can use argdeco
with class callback methods by decorating the method itself or the __call__
method of a class:
class Prog:
@argdeco.argument_parser()
def parser(self):
pass
OR
class Prog:
@argdeco.argument_parser()
def call(self):
pass
Furthermore, argdeco
allows you to forward the argparse
context or parser instance to your decorated callbacks for more flexibility:
@argdeco.argument_parser(prog="PROG")
def parser():
parser.print_help()
Conclusion
argdeco
is a valuable tool for software engineers and solution architects who want to simplify and optimize command line argument parsing in their Python applications. With its opinionated approach and powerful features, such as typed support and class callback method decoration, it provides a seamless experience for developers. Adding argdeco
to your project will enhance the user experience and make your code more robust and maintainable.
Are you ready to simplify your command line argument parsing? Give argdeco
a try and experience the benefits for yourself.
Feel free to ask any questions or share your thoughts on argdeco
and command line argument parsing in the comments below.
Leave a Reply