Skip to main content

A lightweight verbose argument parser

Project description

Amersham

Test Coverage

Amersham: The name of a London Underground station which alliterates with "argument parser"

Motivation

Every CLI application wants two things:

  1. Sanitized user input
  2. Descriptive usage and help messages

Amersham implements both with minimal boilerplate.

Quick Start

Install

pip3 install amersham

Import

import sys

from amersham import Parser

Create a parser and command

parser = Parser("app")

@parser.command()
def command(parameter, flag = None):
    pass

Run the parser

if __name__ == "__main__":
    parser.run(sys.argv[1:])

Run your program

user:~$ python3 app.py --help
usage
  app.py [--help] [--flag] PARAMETER

flags
  --help  -h  displays this message
  --flag

parameters
  PARAMETER  string

Advanced Usage

More Descriptive Help Messages

Add some context to our command and arguments

overrides = {
    "description": "a command",

    "parameter": {
        "description": "a parameter",
    },
    "flag": {
        "description": "a flag",
        "alias": "f",
    }
}

@parser.command(**overrides)
def command(parameter, flag = ""):
    pass

And see the results

user:~$ python3 app.py --help
usage
  app.py [--help] [--flag] PARAMETER

description
  a command

flags
  --help  -h          displays this message
  --flag      string  a flag

parameters
  PARAMETER  string  a parameter

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

amersham-1.0.1.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

amersham-1.0.1-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file amersham-1.0.1.tar.gz.

File metadata

  • Download URL: amersham-1.0.1.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for amersham-1.0.1.tar.gz
Algorithm Hash digest
SHA256 b0b5b422b619bb35ba54cc4b49befeeef188426cbc592093aba59cd37c44ae70
MD5 6aa1dc9784792375965e6e0b5716d823
BLAKE2b-256 c0e5f197a75352253e80cf381d84b4dbdf6bad1acf002c5cb4aa0de3b196e4dd

See more details on using hashes here.

File details

Details for the file amersham-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: amersham-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for amersham-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e57c3f8852c4b42c1ac805326ff46c3bd92026f071b63406fc472d13973b4b71
MD5 d29c96746b755434dce7c0eae3d2e67c
BLAKE2b-256 8ee63ebbdcdf41b6f69cb7c7cb58be9c4385c3aee4860a821b11a306ee893e3e

See more details on using hashes here.

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