[issue35430] Lib/argparse.py uses `is` for string comparison

2018-12-06 Thread Roman Yurchak


Roman Yurchak  added the comment:

Thanks, Alexey and Serhiy! Looking at the code more closely I would agree. I 
guess changing the value of the suppress object to something else to avoid the 
warning, has a potential of breaking code that relies on the current 
functionality and is not worth it...

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35430] Lib/argparse.py uses `is` for string comparison

2018-12-06 Thread Serhiy Storchaka


Serhiy Storchaka  added the comment:

I concur with Alexey. This is a correct use of the 'is' operator.

--
nosy: +serhiy.storchaka
resolution:  -> not a bug
stage: patch review -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35430] Lib/argparse.py uses `is` for string comparison

2018-12-06 Thread Alexey Izbyshev


Alexey Izbyshev  added the comment:

argparse.SUPPRESS is an opaque value to be used by argparse clients. It could 
be anything, it just happens to be a string. So the code doesn't compare 
strings but checks whether a supplied object *is* the opaque value. I do not 
see any problem with this code, though one way to avoid LGTM diagnostics would 
be to use a non-string opaque value instead.

--
nosy: +izbyshev

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35430] Lib/argparse.py uses `is` for string comparison

2018-12-06 Thread Roman Yurchak


Change by Roman Yurchak :


--
keywords: +patch
pull_requests: +10241
stage:  -> patch review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35430] Lib/argparse.py uses `is` for string comparison

2018-12-06 Thread Roman Yurchak


New submission from Roman Yurchak :

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 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com