Skip to content

Instantly share code, notes, and snippets.

@coffindragger
Created October 14, 2011 18:48
Show Gist options
  • Save coffindragger/1287953 to your computer and use it in GitHub Desktop.
Save coffindragger/1287953 to your computer and use it in GitHub Desktop.
Base class for creating commandline python scripts using optparse
class MyScript(OptionParserScript):
usage = "Usage: %prog <command> [arguments]"
options = {
('-v','--verbose'): {'help':"Be verbose", 'action': 'store_true', 'default': False},
}
def main(self, *args, **kwargs):
import pprint
pprint.pprint(args)
pprint.pprint(kwargs)
return 0
if __name__ == '__main__':
script = MyScript()
sys.exit(script())
class OptionParserScript(object):
def __call__(self, *args, **kwargs):
parser = optparse.OptionParser(getattr(self,'usage',None))
opts = getattr(self, 'options', None)
if opts is not None:
for opts_args, opts_kwargs in opts.items():
parser.add_option(*opts_args, **opts_kwargs)
parsed_options, parsed_args = parser.parse_args()
return self.main(*parsed_args, **vars(parsed_options))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment