Skip to main content

Effortless argument parsing

Project description

defopt allows you to effortlessly call Python functions from the command line.

defopt will:

  • Allow functions to be called identically from code or the command line
  • Reward you for documenting your functions
  • Produce informative command line help messages
  • Save you from writing and maintaining argument parsing code ever again

defopt will not:

  • Modify your functions in any way
  • Allow you to build complex command line tools (try docopt or click)


Once you have written and documented your main function (currently you must use Sphinx-style docstrings), simply decorate it with @defopt.main, then call to see the magic happen.

import defopt

def main(greeting, count=1):
    """Display a friendly greeting.

    :param str greeting: Greeting to display
    :param int count: Number of times to display the greeting
    for _ in range(count):

if __name__ == '__main__':

This function can now be called identically from Python and the command line.

>>> from test import main
>>> main('hello!', count=2)
$ python hello! --count 2


For source code, examples, questions, feature requests and bug reports, visit the GitHub repository.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
defopt-0.3.0-py3-none-any.whl (6.6 kB) Copy SHA256 hash SHA256 Wheel 3.5 (20.9 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page