Argdeclare is a declarative argument configurator for python's argparse.
Project description
# ardeclare
An implementation of the interface provided by the cmdln module but
using argparse to provide the option/arg heavy parsing.
Credit for this code goes foremost to Shakeeb Alireza, code was
initially found: [argdeclare: declarative interface to argparse](http://code.activestate.com/recipes/576935-argdeclare-declarative-interface-to-argparse/)
# Usage
from argdeclare import Commander, option_group, option, arg
def test():
# only for options which are repeated across different funcs
common_options = option_group(
option('-t', '--type', action='store', help='specify type of package'),
arg('package', help='package to be (un)installed'),
option('--log', '-l', action='store_true', help='log is on')
)
class Application(Commander):
'a description of the test app'
name = 'app1'
version = '0.1'
default_args = ['install', '--help']
@option('--log', '-l', action='store_true', help='log is on')
@arg('pattern', help="pattern to delete")
def do_delete(self, options):
"help text for delete subcmd"
print(options)
@option('-f', '--force', action='store_true',
help='force through installation')
@common_options
def do_install(self, options):
"help text for install subcmd"
print(options)
@common_options
def do_uninstall(self, options):
"help text for uninstall subcmd"
print(options)
app = Application()
app.cmdline()
if __name__ == '__main__':
test()
An implementation of the interface provided by the cmdln module but
using argparse to provide the option/arg heavy parsing.
Credit for this code goes foremost to Shakeeb Alireza, code was
initially found: [argdeclare: declarative interface to argparse](http://code.activestate.com/recipes/576935-argdeclare-declarative-interface-to-argparse/)
# Usage
from argdeclare import Commander, option_group, option, arg
def test():
# only for options which are repeated across different funcs
common_options = option_group(
option('-t', '--type', action='store', help='specify type of package'),
arg('package', help='package to be (un)installed'),
option('--log', '-l', action='store_true', help='log is on')
)
class Application(Commander):
'a description of the test app'
name = 'app1'
version = '0.1'
default_args = ['install', '--help']
@option('--log', '-l', action='store_true', help='log is on')
@arg('pattern', help="pattern to delete")
def do_delete(self, options):
"help text for delete subcmd"
print(options)
@option('-f', '--force', action='store_true',
help='force through installation')
@common_options
def do_install(self, options):
"help text for install subcmd"
print(options)
@common_options
def do_uninstall(self, options):
"help text for uninstall subcmd"
print(options)
app = Application()
app.cmdline()
if __name__ == '__main__':
test()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
argdeclare-0.4.14.tar.gz
(3.2 kB
view details)
File details
Details for the file argdeclare-0.4.14.tar.gz
.
File metadata
- Download URL: argdeclare-0.4.14.tar.gz
- Upload date:
- Size: 3.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d3cc58560d0bda230356ec06786050069241fdd817ffccc38141c13791d3dd6 |
|
MD5 | c43debc1d2575ca43c21531f0b5c71f2 |
|
BLAKE2b-256 | 785de349f5bdd666ae78f5b47fa44e7f24263a2f093e67d2801ba0bf2b102e03 |