Skip to main content

Parse command line arguments by defining dataclasses

Project description

TypedArgs

Github Actions Pypi

Strong typed command line argument parser for Python.

This project is inspired by TeXitoi/structopt.

Install

From pypi

pip install typed-args

If you want to use it on python 3.5 and 3.6 please install dataclasses:

pip install dataclasses

Core Functionality

Check _test_v0_6.py for add_argument_group and add_subparsers.

Create a parser

argparse

import argparse
parser = argparse.ArgumentParser(prog='ProgramName')

typed-args

import typed_args as ta

@ta.argument_parser(prog='ProgramName')
class Args:
    pass

Add arguments

argparse

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('filename')           # positional argument
parser.add_argument('-c', '--count')      # option that takes a value
parser.add_argument('-v', '--verbose',
                    action='store_true')  # on/off flag

typed-args

import typed_args as ta

@ta.argument_parser()
class Args:
    filename: str = ta.add_argument()                    # positional argument, use the attribute name automatically
    count: str = ta.add_argument('-c', '--count')        # option that takes a value, also can be annotated as Optional[str]
    verbose: bool = ta.add_argument('-v', '--verbose', 
                                    action='store_true') # on/off flag

Parse args

argparse

args = parser.parse_args()
print(args.filename, args.count, args.verbose)

typed-args

args = Args.parse_args()
print(args.filename, args.count, args.verbose)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

typed_args-0.6.0.tar.gz (4.6 kB view hashes)

Uploaded Source

Built Distribution

typed_args-0.6.0-py3-none-any.whl (6.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page