# SysArg
CLI Argument Parser Functions
## Contents
1. Install
1. Initialize
1. Functions
1. defind : Setup option/command/group/help....
1. Cmd : Get Inputed Special Command (it need cmd_id=1 parameter at initialize)
1. Get : Get parameter's input values
1. Version : show version
1. Check : Check option
1. Help : Dispaly Help
- Install
```javascript
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
```javascript
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 ...)
```javascript
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
```javascript
arg.define('number',short='-n',long='--number',params_name='INT',type=int,desc='Number Input')
```
it this option required value
```javascript
arg.define('number',short='-n',long='--number',params_name='INT',type=int,desc='Number Input',required=True)
```
Add some of GROUP(ex: INPUT)
```javascript
arg.define('number',short='-n',long='--number',params_name='INT',type=int,desc='Number Input',group='INPUT')
```
example format: -n, --numbre INT
```javascript
arg.define('number',short='-n',long='--number',params=1,type=int,desc='Number Input')
```
example format: -l, --list ['A','B']
```javascript
arg.define('List',short='-l',long='--list',params=1,type=list,desc='List Input')
```
example format: -l, --list 'A,B,C'
```javascript
arg.define('List',short='-l',long='--list',params=1,type=list,spliter=',',desc='List Input')
```
example format: -l, --list A B C
```javascript
arg.define('List',short='-l',long='--list',params=3,type=list,desc='List Input')
```
example default : if not input then default get 7
```javascript
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
```javascript
arg.define('N',short='-n',long='--number')
```
example command group:
```javascript
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
```javascript
cmd=arg.Cmd()
```
Check input 'command'
```javascript
if arg.Cmd('command'):
~~~~
else:
~~~~
```
- Get parameter's value
- All data
```javascript
param=arg.Get()
```
- Get group INPUT's All data
```javascript
param=arg.Get(group='INPUT')
```
- Get value of COMMAND power's data
```javascript
# ./APP power -i x.x.x.x on
```
```javascript
if arg.Cmd('power'):
pw_cmd=arg.Get(group='power')
if pw_cmd == 'on':
...
elif pw_cmd == 'off':
...
....
```
- Get Parameter number's data
```javascript
param=arg.Get('number')
```
- Get Parameter List's data in the INPUT group
```javascript
param=arg.Get('List',group='INPUT')
```
Simple Example)
```javascript
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)
```
Raw data
{
"_id": null,
"home_page": "https://github.com/kagepark/SysArg",
"name": "SysArg",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "Kage Park",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/75/b5/c7e5b3ff7e0c15f97ffdf5d44ebfaceb74d6435b61a72f95706f68f85754/SysArg-1.1.34.tar.gz",
"platform": null,
"description": "# SysArg\nCLI Argument Parser Functions\n\n## Contents\n1. Install\n1. Initialize\n1. Functions\n 1. defind : Setup option/command/group/help....\n 1. Cmd : Get Inputed Special Command (it need cmd_id=1 parameter at initialize)\n 1. Get : Get parameter's input values\n 1. Version : show version\n 1. Check : Check option \n 1. Help : Dispaly Help\n\n\n- Install\n```javascript\npip3 install SysArg\n```\n\n- Initialize\n - program : Program Name\n - cmd_id : command ID\n - desc : Program Description\n - epilog : Program Epilog (tail string of the help)\n - version : define Program version\n - help_desc: Customize description of Help\n\n```javascript\nimport SysArg\narg=SysArg.SysArg(program='ArgTest',desc='ARG. Testing',version='1.0')\n```\n\nif you want make a special command in this application case: (ArgTest command ...)\n```javascript\nimport SysArg\narg=SysArg.SysArg(program='ArgTest',desc='ARG. Testing',version='1.0',cmd_id=1)\n```\n\n- defind\n - name: (required) parameter name\n - short: short parameter(-XX)\n - long: long parameter(--XX)\n - params: \n - default:0(found parameter then True), \n - 0<n: how many required parameter input data(number)\n - \\- : until next parameter or until finished inputs\n - params_name: --abc=<PARAMS_NAME(Explain String)> (this format)\n - required: required parameter (default False, need then True)\n - default: default value when no input\n - type: default str, wrong type then not taken (support: str,int,list,tuple,dict)\n - spliter: if you set list or tuple at type. but input is single string then using spliter (example: , : )\n - group: make a special group's prameters\n - group_desc: group desciption\n - command: If Command Group then True\n - arg: If this group is command and need input argument then True\n - select: If you want selectable input, this is list type format, if wrong input then Get() command will make an error\n\n\nexample format: -n, --numbre=INT\n```javascript\narg.define('number',short='-n',long='--number',params_name='INT',type=int,desc='Number Input')\n```\n\nit this option required value\n```javascript\narg.define('number',short='-n',long='--number',params_name='INT',type=int,desc='Number Input',required=True)\n```\n\nAdd some of GROUP(ex: INPUT)\n```javascript\narg.define('number',short='-n',long='--number',params_name='INT',type=int,desc='Number Input',group='INPUT')\n```\n\nexample format: -n, --numbre INT\n```javascript\narg.define('number',short='-n',long='--number',params=1,type=int,desc='Number Input')\n```\n\nexample format: -l, --list ['A','B']\n```javascript\narg.define('List',short='-l',long='--list',params=1,type=list,desc='List Input')\n```\n\nexample format: -l, --list 'A,B,C'\n```javascript\narg.define('List',short='-l',long='--list',params=1,type=list,spliter=',',desc='List Input')\n```\n\nexample format: -l, --list A B C\n```javascript\narg.define('List',short='-l',long='--list',params=3,type=list,desc='List Input')\n```\n\nexample default : if not input then default get 7\n```javascript\narg.define('N',short='-n',long='--number',params=1,type=int,desc='Number Input',default=7)\n```\n\nexample check parameter: if -n or --number parameter then True\n```javascript\narg.define('N',short='-n',long='--number')\n```\n\nexample command group:\n```javascript\narg.define(group_desc='File list',group='ls',command=True)\narg.define('show_detail',short='-l',desc='show detail',group='ls')\narg.define('show_time',short='-t',desc='show time',group='ls')\narg.define('number',short='-n',long='--number',params_name='INT',type=int,desc='Number Input',group='INPUT')\narg.define(group_desc='Power command',group='power',command=True,arg=True,select=['on','off','reset'])\n```\n\n- Cmd\nGet Input Command name\n```javascript\ncmd=arg.Cmd()\n```\n\nCheck input 'command'\n```javascript\n if arg.Cmd('command'):\n ~~~~\n else:\n ~~~~\n```\n\n\n- Get parameter's value\n - All data\n```javascript\nparam=arg.Get()\n```\n\n - Get group INPUT's All data\n```javascript\nparam=arg.Get(group='INPUT')\n```\n\n - Get value of COMMAND power's data\n```javascript\n# ./APP power -i x.x.x.x on\n```\n\n```javascript\nif arg.Cmd('power'):\n pw_cmd=arg.Get(group='power')\n if pw_cmd == 'on':\n ...\n elif pw_cmd == 'off':\n ...\n ....\n```\n\n - Get Parameter number's data\n```javascript\nparam=arg.Get('number')\n```\n\n - Get Parameter List's data in the INPUT group\n```javascript\nparam=arg.Get('List',group='INPUT')\n```\n\n\nSimple Example)\n```javascript\nimport SysArg\narg=SysArg.SysArg(program='ArgTest',desc='ARG. Testing',version='1.0',cmd_id=1)\narg.define('a',short='-a',long='--abc',desc='test input',params=1)\narg.define(group_desc='test command',group='ls',command=True)\narg.define('detail',short='-l',desc='show detail',group='ls')\narg.define('find_time',short='-t',desc='find time',group='ls',params=1)\narg.Version()\narg.Help()\n\ncmd=arg.Cmd()\na=arg.Get('a')\n```\nOutput:\n```\n$ python3 a.py --help\nUsage: ArgTest <command> [OPTION] [<args>]\nVersion: 1.0\nARG. Testing\n\nSupported <command>s are:\n ls test command\n\n[OPTION]\n -h, --help Help\n -a, --abc test input(input(1):S)\n\n* ls test command\n -l show detail\n -t find time(input(1):S)\n```\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "CLI Argument Parser",
"version": "1.1.34",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "931e7f2f0b1f2a253f08f370e78db8afc51afeb86e85f5bd215b535ac1580f1c",
"md5": "63131225566d250649277c1089c7e5ab",
"sha256": "70564d03a48cf31feaa60298b3d73d41d0edbe1b9a9ae1f2e538fbb55887cfdc"
},
"downloads": -1,
"filename": "SysArg-1.1.34-py3-none-any.whl",
"has_sig": false,
"md5_digest": "63131225566d250649277c1089c7e5ab",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 9874,
"upload_time": "2023-02-01T04:14:26",
"upload_time_iso_8601": "2023-02-01T04:14:26.788108Z",
"url": "https://files.pythonhosted.org/packages/93/1e/7f2f0b1f2a253f08f370e78db8afc51afeb86e85f5bd215b535ac1580f1c/SysArg-1.1.34-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "75b5c7e5b3ff7e0c15f97ffdf5d44ebfaceb74d6435b61a72f95706f68f85754",
"md5": "e1dcde615030b06c40e3dcf103a7f7d5",
"sha256": "cb6448b545fdf6e6b64c3872900be23caf142d12f9b64232823d49ee354ad440"
},
"downloads": -1,
"filename": "SysArg-1.1.34.tar.gz",
"has_sig": false,
"md5_digest": "e1dcde615030b06c40e3dcf103a7f7d5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9687,
"upload_time": "2023-02-01T04:14:28",
"upload_time_iso_8601": "2023-02-01T04:14:28.474297Z",
"url": "https://files.pythonhosted.org/packages/75/b5/c7e5b3ff7e0c15f97ffdf5d44ebfaceb74d6435b61a72f95706f68f85754/SysArg-1.1.34.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-02-01 04:14:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "kagepark",
"github_project": "SysArg",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "sysarg"
}