[Tutor] docopt module: defaults appear to be ignored

Mark Lawrence breamoreboy at yahoo.co.uk
Wed Oct 9 07:35:08 CEST 2013


On 09/10/2013 01:50, Alex Kleider wrote:
>
> A recent post recommended the docopt module so I've incorporated it into
> the code I'm using to learn SQLite. It's not behaving as I expected.
> Here's a snippet of code:
>
> #!/usr/bin/env python
> # -*- coding : utf -8 -*-
> # file: 'test'
> """Usage: test [new_data | text_entry FILE | show_data ] [-hdv]
> [--db=DATABASE] [--tb=TABLE]
>
> -h --help       show this
> -d --debug      show debugging statements
> -v --verbose    shows table when not absolutely necessary.
> --db DATABASE   specify database file to use [default: ./uwomeds68.db]
> --tb TABLE      specify table to use [default: matesTb]
> """
>

You have no definitions for new_data, text_entry, FILE and show_data, 
and the use of the square brackets around them looks wrong.  Here's a 
real life example from my code.

"""Usage: cashflow.py [-t] ACCOUNTS TRANSFERS ENDDATE (report|plot)

Arguments:
   ACCOUNTS      mandatory file containing accounts data
   TRANSFERS     mandatory file containing transfer data
   ENDDATE       mandatory end date for the report or plot

Options:
   -h --help
   -t       show total of accounts

"""

If you haven't already looked at them there are lots of extremely useful 
examples here https://github.com/docopt/docopt/tree/master/examples.

-- 
Roses are red,
Violets are blue,
Most poems rhyme,
But this one doesn't.

Mark Lawrence



More information about the Tutor mailing list