Movatterモバイル変換


[0]ホーム

URL:


homepage

Issue14910

This issue trackerhas been migrated toGitHub, and is currentlyread-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title:argparse: disable abbreviation
Type:enhancementStage:resolved
Components:Library (Lib)Versions:Python 3.5
process
Status:closedResolution:fixed
Dependencies:Superseder:
Assigned To: berker.peksagNosy List: Michael.Edwards, berker.peksag, bethard, daniel.ugra, eli.bendersky, eric.smith, jens.jaehrig, jpaugh, paul.j3, puppet, python-dev, r.david.murray, remram, tshepang, xobes
Priority:normalKeywords:patch

Created on2012-05-25 10:59 byjens.jaehrig, last changed2022-04-11 14:57 byadmin. This issue is nowclosed.

Files
File nameUploadedDescriptionEdit
disable-abbrev.patchjpaugh,2012-05-26 20:26Patch wi/tests,docreview
14910.patchbethard,2012-07-22 19:57review
issue14910_2.patchpaul.j3,2014-05-09 04:36review
issue_14910_3.diffpuppet,2014-08-02 12:27review
issue14910_4.diffpuppet,2014-08-03 08:01review
issue14910_5.diffpuppet,2014-08-03 08:06review
issue14910_6.diffpuppet,2014-08-04 08:23review
issue14910_7.diff.txtpuppet,2014-08-04 20:54review
Messages (24)
msg161566 -(view)Author: Jens Jährig (jens.jaehrig)Date: 2012-05-25 11:02
argparse uses per default abbreviation in unambiguous cases.I don't want abbreviation and i'd like to disable it.But theres no option to do this.http://docs.python.org/library/argparse.html#argument-abbreviationsOnly to override the Handler like suggested here:http://stackoverflow.com/questions/10750802/python-argparse-disable-abbreviation/10751356#10751356################# Example      #################    import argparse    parser = argparse.ArgumentParser()    parser.add_argument('--send', action='store_true')    parser.parse_args(['--se']) # returns Namespace(send=True)But i want it only to be true when the full parameter is supplied. To prevent user errors.
msg161672 -(view)Author: Jonathan Paugh (jpaugh)Date: 2012-05-26 17:54
I am dubious as to the use of this: I think resolving partial args is one of the best thing since invented since sliced bread.However, it's a good project to get my feet wet, so I'll take it on. I should have a patch later today--I'm working on test-cases just now.
msg161680 -(view)Author: Jonathan Paugh (jpaugh)Date: 2012-05-26 20:26
I created a patch that exibhts the requested behavior. I added tests, and updated the documentation. I ran the test-suite against a build of Python 3.3.0a3+, and all tests check out.This changes the public API of argparse.ArgumentParser and of its parse_args() method.
msg166160 -(view)Author: Steven Bethard (bethard)*(Python committer)Date: 2012-07-22 19:57
I think it makes a lot of sense to allow people to disable abbreviations, so +1 on the feature request.The patch looked good. There was one typo - using "accept_abbrev" in the docstring instead of "allow_abbrev" as in the implementation, and I fixed that and uploaded a new patch.To be complete, the patch also needs to add some documentation, editMisc/NEWS, etc. See:http://docs.python.org/devguide/patch.html#preparation
msg166161 -(view)Author: Steven Bethard (bethard)*(Python committer)Date: 2012-07-22 19:58
Sorry, my mistake, the doc changes were already in the patch. I just checked them and they look good too. So everything's ready to commit.Thanks for your contribution!
msg166162 -(view)Author: R. David Murray (r.david.murray)*(Python committer)Date: 2012-07-22 20:06
Jonathan: we are in feature freeze right now preparing 3.3 for release, so you might want to ping the issue once 3.3 is out to remind us to do the checkin.
msg187235 -(view)Author: Mark Lawrence (BreamoreBoy)*Date: 2013-04-18 10:24
Ping :)
msg204678 -(view)Author: paul j3 (paul.j3)*(Python triager)Date: 2013-11-28 17:15
For a programmer who needs to turn off this abbreviation matching now, a simple solution is to subclass ArgumentParser:    class MyParser(ArgumentParser):        def _get_option_tuples(self, option_string):            return []This could be the place to implement more specialized matching (e.g. do not match on strings like '--sync').
msg218137 -(view)Author: paul j3 (paul.j3)*(Python triager)Date: 2014-05-09 03:19
Update the patch - test_argparse.py - cleanup spacesargparse.rst - merging conflicts
msg224557 -(view)Author: Daniel Eriksson (puppet)*Date: 2014-08-02 12:27
Update the patch - issue_14910_3.diffargparse.rst - merging conflicts
msg224567 -(view)Author: Eli Bendersky (eli.bendersky)*(Python committer)Date: 2014-08-02 13:47
Daniel, I left some comments in Rietveld. Also it doesn't seem that you addressed the previously left comments when you fixed up the patch.
msg224616 -(view)Author: Daniel Eriksson (puppet)*Date: 2014-08-03 08:01
Oh, completely missed comments there too!I hope I got them all in a good way!
msg224617 -(view)Author: Daniel Eriksson (puppet)*Date: 2014-08-03 08:06
Sorry for a new patch this close, but just tripple checked the documentation and noticed a word to much. Made it more clear hopefully
msg224629 -(view)Author: Eli Bendersky (eli.bendersky)*(Python committer)Date: 2014-08-03 12:46
No worries, Daniel. You should have received an email when comments were posted to the review, did you? If you you may want to check your settings in the bug tracker.I left a couple of additional comments on the documentation file, but other than that this LGTM.
msg224654 -(view)Author: Daniel Eriksson (puppet)*Date: 2014-08-03 20:12
Eli, will look into those tomorrow morning, so a final patch will come during tomorrow. Checked my spam folder - and there they where, fixed the settings now so I get it faster.
msg224699 -(view)Author: Daniel Eriksson (puppet)*Date: 2014-08-04 08:23
Fixed documentation issues
msg224775 -(view)Author: Daniel Eriksson (puppet)*Date: 2014-08-04 20:54
Updated patch
msg225009 -(view)Author: Eli Bendersky (eli.bendersky)*(Python committer)Date: 2014-08-07 13:00
Ezio, could you see if your comments were addressed?Steven, do you want to take another look, or is this OK to commit?
msg234476 -(view)Author: Andy Zobro (xobes)Date: 2015-01-22 06:05
This breaks custom actions.e.g.:class dict_action(argparse.Action):    def __init__(self, *a, **k):        argparse.Action.__init__(self, *a, **k)TypeError: __init__() got an unexpected keyword argument 'allow_abbrev'
msg234477 -(view)Author: Andy Zobro (xobes)Date: 2015-01-22 06:12
Ignore previous comment, I wish I could delete it.I simply provided the allow_abbrev to the wrong function and spent zero time investigating the error.
msg235362 -(view)Author: Rémi Rampin (remram)*Date: 2015-02-03 21:03
It looks like the previous comments were addressed in the latest patch. Is this still planned for 3.5? Alpha 1 is next week according toPEP478.
msg235421 -(view)Author: Berker Peksag (berker.peksag)*(Python committer)Date: 2015-02-05 07:27
The patch LGTM.InDoc/library/argparse.rst:-                          add_help=True)+                          allow_abbrev=True, add_help=True)should be    add_help=True, allow_abbrev=True)I'll add a release note and commit it. Thanks!
msg235926 -(view)Author: Roundup Robot (python-dev)(Python triager)Date: 2015-02-13 23:39
New changeset99302634d756 by Berker Peksag in branch 'default':Issue#14910: Add allow_abbrev parameter to argparse.ArgumentParser.https://hg.python.org/cpython/rev/99302634d756
msg235928 -(view)Author: Berker Peksag (berker.peksag)*(Python committer)Date: 2015-02-13 23:41
Committed. Thank you all for patches and reviews :)
History
DateUserActionArgs
2022-04-11 14:57:30adminsetgithub: 59115
2015-02-13 23:41:44berker.peksagsetstatus: open -> closed
resolution: fixed
messages: +msg235928

stage: patch review -> resolved
2015-02-13 23:39:01python-devsetnosy: +python-dev
messages: +msg235926
2015-02-05 07:27:02berker.peksagsetassignee:berker.peksag

messages: +msg235421
nosy: +berker.peksag
2015-02-03 21:03:03remramsetmessages: +msg235362
2015-01-26 14:08:01remramsetnosy: +remram
2015-01-22 06:12:42xobessetmessages: +msg234477
2015-01-22 06:05:56xobessetnosy: +xobes
messages: +msg234476
2014-08-07 13:00:43eli.benderskysetmessages: +msg225009
2014-08-04 20:54:42puppetsetfiles: +issue14910_7.diff.txt

messages: +msg224775
2014-08-04 08:23:02puppetsetfiles: +issue14910_6.diff

messages: +msg224699
2014-08-04 01:28:23berker.peksagsetcomponents: + Library (Lib), - None
stage: patch review
2014-08-03 20:12:24puppetsetmessages: +msg224654
2014-08-03 12:46:52eli.benderskysetmessages: +msg224629
2014-08-03 08:06:00puppetsetfiles: +issue14910_5.diff

messages: +msg224617
2014-08-03 08:01:36puppetsetfiles: +issue14910_4.diff

messages: +msg224616
2014-08-02 13:47:34eli.benderskysetmessages: +msg224567
2014-08-02 12:27:52puppetsetfiles: +issue_14910_3.diff
nosy: +puppet
messages: +msg224557

2014-05-09 04:36:19paul.j3setfiles: +issue14910_2.patch
2014-05-09 04:35:22paul.j3setfiles: -issue14910_2.patch
2014-05-09 03:19:06paul.j3setfiles: +issue14910_2.patch

messages: +msg218137
2014-04-14 19:37:23akuchlingsetversions: + Python 3.5, - Python 3.4
2014-02-03 15:44:48BreamoreBoysetnosy: -BreamoreBoy
2013-11-28 17:15:48paul.j3setnosy: +paul.j3
messages: +msg204678
2013-11-27 15:12:00eric.smithsetnosy: +eric.smith
2013-11-26 17:55:48eli.benderskysetnosy: +eli.bendersky
2013-04-18 10:24:22BreamoreBoysetnosy: +BreamoreBoy
messages: +msg187235
2013-02-05 15:11:49daniel.ugrasetnosy: +daniel.ugra
2012-12-05 18:45:51r.david.murraylinkissue16614 superseder
2012-12-05 18:45:11r.david.murraysetnosy: +Michael.Edwards
2012-07-22 20:06:32r.david.murraysetnosy: +r.david.murray
messages: +msg166162
2012-07-22 19:58:17bethardsetmessages: +msg166161
2012-07-22 19:57:10bethardsetfiles: +14910.patch

messages: +msg166160
versions: + Python 3.4, - Python 3.3
2012-05-26 20:26:38jpaughsetfiles: +disable-abbrev.patch
keywords: +patch
messages: +msg161680
2012-05-26 17:54:05jpaughsetnosy: +jpaugh
messages: +msg161672
2012-05-25 18:42:27eric.araujosetversions: + Python 3.3, - Python 2.6, Python 2.7
2012-05-25 16:26:59tshepangsetnosy: +bethard,tshepang
2012-05-25 11:04:16jens.jaehrigsettitle: argparse disable abbreviation -> argparse: disable abbreviation
2012-05-25 11:02:22jens.jaehrigsetmessages: +msg161566
2012-05-25 10:59:55jens.jaehrigcreate
Supported byThe Python Software Foundation,
Powered byRoundup
Copyright © 1990-2022,Python Software Foundation
Legal Statements

[8]ページ先頭

©2009-2026 Movatter.jp