Skip to main content

CLI Argument Parser

Project description

SysArg

CLI Argument Parser Functions

Contents

  1. Install
  2. Initialize
  3. Functions
    1. defind : Setup option/command/group/help....
    2. Cmd : Get Inputed Special Command (it need cmd_id=1 parameter at initialize)
    3. Get : Get parameter's input values
    4. Version : show version
    5. Check : Check option
    6. Help : Dispaly Help
  • Install
pip3 install SysArg
  • Initialize
    • program : Program Name
    • cmd_id : command ID
    • desc : Program Description
    • epilog : Program Epilog (tail string of the help)
    • version : define Program version
    • help_desc: Customize description of Help
import SysArg
arg=SysArg.SysArg(program='ArgTest',desc='ARG. Testing',version='1.0')

if you want make a special command in this application case: (ArgTest command ...)

import SysArg
arg=SysArg.SysArg(program='ArgTest',desc='ARG. Testing',version='1.0',cmd_id=1)
  • defind
    • name: (required) parameter name
    • short: short parameter(-XX)
    • long: long parameter(--XX)
    • params:
      • default:0(found parameter then True),
      • 0<n: how many required parameter input data(number)
      • - : until next parameter or until finished inputs
    • params_name: --abc=<PARAMS_NAME(Explain String)> (this format)
    • required: required parameter (default False, need then True)
    • default: default value when no input
    • type: default str, wrong type then not taken (support: str,int,list,tuple,dict)
      • spliter: if you set list or tuple at type. but input is single string then using spliter (example: , : )
    • group: make a special group's prameters
    • group_desc: group desciption
    • command: If Command Group then True
    • arg: If this group is command and need input argument then True
    • select: If you want selectable input, this is list type format, if wrong input then Get() command will make an error

example format: -n, --numbre=INT

arg.define('number',short='-n',long='--number',params_name='INT',type=int,desc='Number Input')

it this option required value

arg.define('number',short='-n',long='--number',params_name='INT',type=int,desc='Number Input',required=True)

Add some of GROUP(ex: INPUT)

arg.define('number',short='-n',long='--number',params_name='INT',type=int,desc='Number Input',group='INPUT')

example format: -n, --numbre INT

arg.define('number',short='-n',long='--number',params=1,type=int,desc='Number Input')

example format: -l, --list ['A','B']

arg.define('List',short='-l',long='--list',params=1,type=list,desc='List Input')

example format: -l, --list 'A,B,C'

arg.define('List',short='-l',long='--list',params=1,type=list,spliter=',',desc='List Input')

example format: -l, --list A B C

arg.define('List',short='-l',long='--list',params=3,type=list,desc='List Input')

example default : if not input then default get 7

arg.define('N',short='-n',long='--number',params=1,type=int,desc='Number Input',default=7)

example check parameter: if -n or --number parameter then True

arg.define('N',short='-n',long='--number')

example command group:

arg.define(group_desc='File list',group='ls',command=True)
arg.define('show_detail',short='-l',desc='show detail',group='ls')
arg.define('show_time',short='-t',desc='show time',group='ls')
arg.define('number',short='-n',long='--number',params_name='INT',type=int,desc='Number Input',group='INPUT')
arg.define(group_desc='Power command',group='power',command=True,arg=True,select=['on','off','reset'])
  • Cmd Get Input Command name
cmd=arg.Cmd()

Check input 'command'

   if arg.Cmd('command'):
       ~~~~
   else:
       ~~~~
  • Get parameter's value
    • All data
param=arg.Get()
  • Get group INPUT's All data
param=arg.Get(group='INPUT')
  • Get value of COMMAND power's data
# ./APP power -i x.x.x.x on
if arg.Cmd('power'):
    pw_cmd=arg.Get(group='power')
    if pw_cmd == 'on':
        ...
    elif pw_cmd == 'off':
        ...
    ....
  • Get Parameter number's data
param=arg.Get('number')
  • Get Parameter List's data in the INPUT group
param=arg.Get('List',group='INPUT')

Simple Example)

import SysArg
arg=SysArg.SysArg(program='ArgTest',desc='ARG. Testing',version='1.0',cmd_id=1)
arg.define('a',short='-a',long='--abc',desc='test input',params=1)
arg.define(group_desc='test command',group='ls',command=True)
arg.define('detail',short='-l',desc='show detail',group='ls')
arg.define('find_time',short='-t',desc='find time',group='ls',params=1)
arg.Version()
arg.Help()

cmd=arg.Cmd()
a=arg.Get('a')

Output:

$ python3 a.py --help
Usage: ArgTest <command> [OPTION] [<args>]
Version: 1.0
ARG. Testing

Supported <command>s are:
  ls                                 test command

[OPTION]
   -h, --help                        Help
   -a, --abc                         test input(input(1):S)

* ls                                 test command
   -l                                show detail
   -t                                find time(input(1):S)

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

SysArg-1.1.30.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

SysArg-1.1.30-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file SysArg-1.1.30.tar.gz.

File metadata

  • Download URL: SysArg-1.1.30.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.20.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.6.8

File hashes

Hashes for SysArg-1.1.30.tar.gz
Algorithm Hash digest
SHA256 187a377ba188b05d46a85dfb101c6bb79acbf3322528252500c26c1826c16d40
MD5 144670b2d39df95b3108cf5d139f8dfa
BLAKE2b-256 00e0269631c2a16ea3380e24c49cca746dc9d48f154a9d186f5b07c4f22054c6

See more details on using hashes here.

File details

Details for the file SysArg-1.1.30-py3-none-any.whl.

File metadata

  • Download URL: SysArg-1.1.30-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.20.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.6.8

File hashes

Hashes for SysArg-1.1.30-py3-none-any.whl
Algorithm Hash digest
SHA256 999e2f04a4be7c722885d37e2242adbe146d1e7efd9471aaaa4e541b41dced26
MD5 dff0b37c91136b694a4661279eeaaa7e
BLAKE2b-256 adcbcbd2ec7a1ef2c5242e14f4f2a97fa0633f2a7975afd5bab0f9231a348660

See more details on using hashes here.

Supported by

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