Determine actually given command line arguments
Henry Leyh
henry.leyh at ipp.mpg.de
Thu May 16 03:29:50 EDT 2013
On 16.05.2013 08:08, Jussi Piitulainen wrote:
> Henry Leyh writes:
>
>> But now I would also like to be able to _write_ such a config file
>> FILE that can be read in a later run. And FILE should contain only
>> those arguments that were given on the command line.
>>
>> Say, I tell argparse to look for arguments -s|--sopt STRING,
>> -i|--iopt INT, -b|--bopt [BOOL], -C CONFFILE. Then 'prog -s bla -i
>> 42 -C cfile' should produce a confparser compatible cfile which
>> contains
>>
>> [my_options]
>> sopt = blah
>> iopt = 42
>>
>> and not 'bopt = False' (if False was the program's default for
>> bopt).
>
> Could you instead write those options that differ from the defaults?
> You could parse an actual command line and an empty command line, and
> work out the difference.
>
> So 'prog -i 3' would not cause 'iopt = 3' to be written if 3 is the
> default for iopt, but would that be a problem?
That's what the program does at the moment. However, I'm not quite
happy with it. Generally, the user doesn't know what's the default and
it would be confusing if 'prog -i 3' doesn't make 'iopt = 3' turn up in
the file at the end. There may also be the case when the user (for
whatever reason) _wants_ the default in the file.
I think I will try the opposite instead: the program writes the whole
set of options to the file. This would produce a complete and
consistent configuration which automatically reflects the hierarchy in
which the options were set. And the user can sort it out by hand if he
wants.
Regards,
Henry
More information about the Python-list
mailing list