python.lang.correctness.common-mistakes.is-comparison-string.identical-is-comparison

Community Favorite
profile photo of semgrepsemgrep
Author
46,927
Download Count*

Found identical comparison using is. Ensure this is what you intended.

Run Locally

Run in CI

Defintion

rules:
  - id: identical-is-comparison
    pattern: $S is $S
    message: Found identical comparison using is. Ensure this is what you intended.
    languages:
      - python
    severity: ERROR
    metadata:
      category: correctness
      technology:
        - python
      license: Commons Clause License Condition v1.0[LGPL-2.1-only]

Examples

is-comparison-string.py

x = object()

# ruleid:identical-is-comparison
if x is x:
  print('true')

# ok:identical-is-comparison
if x is None:
  pass

# ok:identical-is-comparison
if (type(X) is str):
  pass

# ok:identical-is-comparison
if x is True:
  pass

# ok:identical-is-comparison
if x is False:
  pass

# ruleid: string-is-comparison
if x is 'hello there':
  pass

# ruleid: string-is-comparison
if "hello there" is x:
  pass

# ok: string-is-comparison
if x is '':
  pass