On Wed, Oct 9, 2019 at 11:01 PM Ryan Gonzalez <rym...@gmail.com> wrote:

> I believe you want Python 3.7's parse_intermixed_args:
> https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_intermixed_args
>
> A quick test seems to work:
>
>
> import argparse
>
> p = argparse.ArgumentParser()
> p.add_argument('files', nargs='*')
> p.add_argument('-f', '--force', action='store_true')
>
> print(p.parse_intermixed_args())
>
>
> $ python3 rm.py x -f y
> Namespace(files=['x', 'y'], force=True)
> $
>

This is EXACTLY what I've been looking for.  Looks like it was added in
2017 and release in 3.7.  The box I use where I investigated this has 3.6
on it.  Sigh, well at least I know it was a good idea!  Thanks so much!


>
>

>
> On Wed, Oct 9, 2019, 9:50 PM brent bejot <brent.be...@gmail.com> wrote:
>
>> Hello all,
>>
>> Aspiring contributor here.  I am not at all certain that this is the
>> right place to discuss this.  Do refer me to a better location if I'm out
>> of place.
>>
>> I would like to add a simple feature to the argparse library.  I
>> frequently find myself writing small utilities, stylistically similar to
>> unix's "rm" whose main parameter(s) get bundled into a list and it doesn't
>> matter if flags are sprinkled throughout.
>>
>> e.g.  "rm foo.txt -f bar.txt" removes both foo.txt and bar.txt forcefully.
>>
>> Doing this in argparse currently is cumbersome at best (though I would be
>> happy to be proved wrong on that), so I rarely implement it as a feature.
>>
>> Of note, calling parser.add_argument with nargs="..." or nargs="A..." or
>> nargs="*" gets close, but will not allow you to intermix other flags
>> between your list.
>>
>> I have a working modification of argparse.py that I could commit, but I
>> know there's several steps between here and there - I just don't know what
>> those steps are.
>>
>> Any direction would be very much appreciated.
>>
>> Thanks!
>> _______________________________________________
>> Python-ideas mailing list -- python-ideas@python.org
>> To unsubscribe send an email to python-ideas-le...@python.org
>> https://mail.python.org/mailman3/lists/python-ideas.python.org/
>> Message archived at
>> https://mail.python.org/archives/list/python-ideas@python.org/message/MPWEGVUQADXMTR27GPLX2GT2Z27LRZQU/
>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/2NAJMTIAW2TSS5DII6APZPQUPQPKKQ5R/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to