[New-bugs-announce] [issue35430] Lib/argparse.py uses `is` for string comparison

Roman Yurchak report at bugs.python.org
Thu Dec 6 15:27:58 EST 2018

New submission from Roman Yurchak <rth.yurchak at pm.me>:

Lib/argparse.py uses `is` for string comparison,

221:            if self.heading is not SUPPRESS and self.heading is not None:
247:        if text is not SUPPRESS and text is not None:
251:        if usage is not SUPPRESS:
256:        if action.help is not SUPPRESS:
290:                        if part and part is not SUPPRESS])
679:            if action.default is not SUPPRESS:
1130:        if self.dest is not SUPPRESS:
1766:            if action.dest is not SUPPRESS:
1768:                    if action.default is not SUPPRESS:
1851:            if argument_values is not SUPPRESS:
2026:                             if action.help is not SUPPRESS]

where `SUPPRESS = '==SUPPRESS=='`. Unless I'm missing something this can produce false negatives if the variable that we compare against is a slice from another string. Using equality is probably safer in any case.

Detected with LGTM.com analysis.

components: Library (Lib)
messages: 331246
nosy: rth
priority: normal
severity: normal
status: open
title: Lib/argparse.py uses `is` for string comparison
versions: Python 3.8

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list