pylint icon indicating copy to clipboard operation
pylint copied to clipboard

Support fixme's in docstrings

Open badsketch opened this issue 1 year ago • 26 comments

Type of Changes

Type
:bug: Bug fix
:sparkles: New feature
:hammer: Refactoring
:scroll: Docs

Description

Closes #9255

Previous PR discussion here: https://github.com/pylint-dev/pylint/pull/9281

  • now an enhancement of existing fixme rather than a new message
  • check-fixme-in-docstring is the setting that enables it and defaults to false
  • also suggestions to improve the existing description: https://github.com/pylint-dev/pylint/pull/9281#discussion_r1415102708. I kind of like how the message is the TODO itself. As for the "Used when a warning note..." is that for a tooltip? I believe almost all checker messages have something like this, right?

Appreciate any feedback!

badsketch avatar Jun 22 '24 07:06 badsketch

When running pylint -h, I get

Miscellaneous:
  BaseChecker for encoding issues.

  --notes <comma separated values>
                        List of note tags to take in consideration, separated by a comma. (default:
                        ('FIXME', 'XXX', 'TODO'))
  --notes-rgx <regexp>  Regular expression of note tags to take in consideration. (default: )
  --check-fixme-in-docstring <y or n>
                        Whether or not to search for fixme's in docstrings. (default: False)

Thoughts on updating the docstring to be "Checker for encoding issues and fixme notes"? instead of "BaseChecker for encoding issues."

badsketch avatar Jun 22 '24 07:06 badsketch

🤖 According to the primer, this change has no effect on the checked open source code. 🤖🎉

This comment was generated for commit 2cd64924d2f1ccd1552e964a7736be54937505bf

github-actions[bot] avatar Jun 22 '24 08:06 github-actions[bot]

When running pylint -h, I get

Miscellaneous:
  BaseChecker for encoding issues.

  --notes <comma separated values>
                        List of note tags to take in consideration, separated by a comma. (default:
                        ('FIXME', 'XXX', 'TODO'))
  --notes-rgx <regexp>  Regular expression of note tags to take in consideration. (default: )
  --check-fixme-in-docstring <y or n>
                        Whether or not to search for fixme's in docstrings. (default: False)

Thoughts on updating the docstring to be "Checker for encoding issues and fixme notes"? instead of "BaseChecker for encoding issues."

Fine with me!

DanielNoord avatar Jun 23 '24 10:06 DanielNoord

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 95.80%. Comparing base (c0ecd70) to head (51a2a14). Report is 71 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #9744   +/-   ##
=======================================
  Coverage   95.80%   95.80%           
=======================================
  Files         174      174           
  Lines       18934    18946   +12     
=======================================
+ Hits        18140    18152   +12     
  Misses        794      794           
Files with missing lines Coverage Δ
pylint/checkers/misc.py 90.41% <100.00%> (+1.88%) :arrow_up:

codecov[bot] avatar Jun 30 '24 20:06 codecov[bot]

🤖 According to the primer, this change has no effect on the checked open source code. 🤖🎉

This comment was generated for commit c07134e3b953ac595daffff503b87f9cdf8ff5eb

github-actions[bot] avatar Jun 30 '24 20:06 github-actions[bot]

🤖 According to the primer, this change has no effect on the checked open source code. 🤖🎉

This comment was generated for commit ec19e0ac9366dc07dfdc9d1d05a68f1fd861d4fe

github-actions[bot] avatar Jun 30 '24 21:06 github-actions[bot]

🤖 According to the primer, this change has no effect on the checked open source code. 🤖🎉

This comment was generated for commit 002d8043866c006dd5ca5a8dbbd55944d0d711cd

github-actions[bot] avatar Jun 30 '24 22:06 github-actions[bot]

Apologies for the glacial pace of this PR 😬, really appreciate all the feedback! Some updates:

  • previously we were taking the token line and using string manipulation to get the fixme message, then rebuilding it so the regex could find it. I've since changed the logic to use just regex with capture groups instead. I've made this change for both docstrings and comments
  • To do this, I also had to split the docstring regex pattern between single and multiline. I tried it with just a single regex, but it got really ugly and I think the logic is much cleaner/intuitive if there's two. There's 3 regex patterns total now.
  • correct me if I'm wrong, but we were previously using re.search(). It seems if we're only searching the beginning of a string, then we can use re.match() which has better performance.

Let me know your thoughts!

badsketch avatar Jul 08 '24 02:07 badsketch

🤖 Effect of this PR on checked open source code: 🤖

Effect on astroid: The following messages are no longer emitted:

  1. fixme: # TODO: This should return an Uninferable as this would raise https://github.com/pylint-dev/astroid/blob/fb6f5bc535e92471158333feddfa93e3614683bb/astroid/brain/brain_dataclasses.py#L186

Effect on black: The following messages are no longer emitted:

  1. fixme: #assert ilabel not in first # XXX failed on <> ... != https://github.com/psf/black/blob/7e2afc9bfdc4ec4bc3297aaa16a62d575249a5e0/src/blib2to3/pgen2/pgen.py#L80

Effect on music21: The following messages are no longer emitted:

  1. fixme: # TODO: attach \noBeam to note if it is the last note https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/lily/translate.py#L1174
  2. fixme: # TODO: write https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/stream/base.py#L13034
  3. fixme: # TODO: write https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/stream/base.py#L13038
  4. fixme: # TODO: this file does not import correctly due to first/second https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/test/test_repeat.py#L475
  5. fixme: # TODO: use the linter, reference DOESN'T have to be passed in https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/alpha/analysis/hasher.py#L485
  6. fixme: # TODO: Turn back on when a smaller work is found... https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/musedata/translate.py#L584
  7. fixme: # TODO: column 17 self.src[16] defines the graphic note type https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/musedata/init.py#L339
  8. fixme: # TODO: Something with 4.2 Repetitions; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2602
  9. fixme: # TODO: Find out what timeBase means; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2606
  10. fixme: # TODO: make staff numbers relevant; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2610

Effect on pytest: The following messages are no longer emitted:

  1. fixme: # XXX https://github.com/pytest-dev/pytest/blob/82e407187c6ed1b6d7e97945ba194e4d9aa693ed/src/_pytest/_code/code.py#L913
  2. fixme: path.strpath # XXX svn? https://github.com/pytest-dev/pytest/blob/82e407187c6ed1b6d7e97945ba194e4d9aa693ed/src/_pytest/_py/path.py#L193

Effect on pandas: The following messages are no longer emitted:

  1. fixme: e.g. Sparse[bool, False] # TODO: no test cases get here https://github.com/pandas-dev/pandas/blob/236d89b8565df844da0badfbc9f2db7084883933/pandas/core/algorithms.py#L158

Effect on sentry: The following messages are no longer emitted:

  1. fixme: type: ignore[assignment] # XXX: clobbers Serializer.fields https://github.com/getsentry/sentry/blob/566f4a0a04d9a9dd6f1a56d13808ea715b913e8b/src/sentry/discover/endpoints/serializers.py#L33
  2. fixme: type: ignore[assignment] # XXX: clobbers Serializer.fields https://github.com/getsentry/sentry/blob/566f4a0a04d9a9dd6f1a56d13808ea715b913e8b/src/sentry/discover/endpoints/serializers.py#L156
  3. fixme: type: ignore[assignment] # XXX: clobbering Serializer.fields https://github.com/getsentry/sentry/blob/566f4a0a04d9a9dd6f1a56d13808ea715b913e8b/src/sentry/api/serializers/rest_framework/dashboard.py#L143

This comment was generated for commit 767881377cbaf9182a9e5b80f3bc70b4b580328c

github-actions[bot] avatar Jul 08 '24 03:07 github-actions[bot]

Those primer tests are awesome! They thankfully caught something I missed when refactoring the comment regex pattern. I was no longer supporting cases like:

#     # TODO: something something

which is kind of curious as I wonder if that should've been supported in the first place? Regardless, I've updated it so it's supported and added that as an additional functional test.

badsketch avatar Jul 08 '24 03:07 badsketch

🤖 Effect of this PR on checked open source code: 🤖

Effect on astroid: The following messages are now emitted:

  1. fixme: TODO: This should return an Uninferable as this would raise https://github.com/pylint-dev/astroid/blob/fb6f5bc535e92471158333feddfa93e3614683bb/astroid/brain/brain_dataclasses.py#L186

The following messages are no longer emitted:

  1. fixme: # TODO: This should return an Uninferable as this would raise https://github.com/pylint-dev/astroid/blob/fb6f5bc535e92471158333feddfa93e3614683bb/astroid/brain/brain_dataclasses.py#L186

Effect on black: The following messages are no longer emitted:

  1. fixme: #assert ilabel not in first # XXX failed on <> ... != https://github.com/psf/black/blob/7e2afc9bfdc4ec4bc3297aaa16a62d575249a5e0/src/blib2to3/pgen2/pgen.py#L80

Effect on music21: The following messages are now emitted:

  1. fixme: TODO: attach \noBeam to note if it is the last note https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/lily/translate.py#L1174
  2. fixme: TODO: write https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/stream/base.py#L13034
  3. fixme: TODO: write https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/stream/base.py#L13038
  4. fixme: TODO: this file does not import correctly due to first/second https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/test/test_repeat.py#L475
  5. fixme: TODO: use the linter, reference DOESN'T have to be passed in https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/alpha/analysis/hasher.py#L485
  6. fixme: TODO: Turn back on when a smaller work is found... https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/musedata/translate.py#L584
  7. fixme: TODO: column 17 self.src[16] defines the graphic note type https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/musedata/init.py#L339
  8. fixme: TODO: Something with 4.2 Repetitions; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2602
  9. fixme: TODO: Find out what timeBase means; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2606
  10. fixme: TODO: make staff numbers relevant; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2610

The following messages are no longer emitted:

  1. fixme: # TODO: attach \noBeam to note if it is the last note https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/lily/translate.py#L1174
  2. fixme: # TODO: write https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/stream/base.py#L13034
  3. fixme: # TODO: write https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/stream/base.py#L13038
  4. fixme: # TODO: this file does not import correctly due to first/second https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/test/test_repeat.py#L475
  5. fixme: # TODO: use the linter, reference DOESN'T have to be passed in https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/alpha/analysis/hasher.py#L485
  6. fixme: # TODO: Turn back on when a smaller work is found... https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/musedata/translate.py#L584
  7. fixme: # TODO: column 17 self.src[16] defines the graphic note type https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/musedata/init.py#L339
  8. fixme: # TODO: Something with 4.2 Repetitions; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2602
  9. fixme: # TODO: Find out what timeBase means; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2606
  10. fixme: # TODO: make staff numbers relevant; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2610

Effect on pytest: The following messages are now emitted:

  1. fixme: XXX https://github.com/pytest-dev/pytest/blob/82e407187c6ed1b6d7e97945ba194e4d9aa693ed/src/_pytest/_code/code.py#L913

The following messages are no longer emitted:

  1. fixme: # XXX https://github.com/pytest-dev/pytest/blob/82e407187c6ed1b6d7e97945ba194e4d9aa693ed/src/_pytest/_code/code.py#L913
  2. fixme: path.strpath # XXX svn? https://github.com/pytest-dev/pytest/blob/82e407187c6ed1b6d7e97945ba194e4d9aa693ed/src/_pytest/_py/path.py#L193

Effect on pandas: The following messages are no longer emitted:

  1. fixme: e.g. Sparse[bool, False] # TODO: no test cases get here https://github.com/pandas-dev/pandas/blob/236d89b8565df844da0badfbc9f2db7084883933/pandas/core/algorithms.py#L158

Effect on sentry: The following messages are no longer emitted:

  1. fixme: type: ignore[assignment] # XXX: clobbers Serializer.fields https://github.com/getsentry/sentry/blob/566f4a0a04d9a9dd6f1a56d13808ea715b913e8b/src/sentry/discover/endpoints/serializers.py#L33
  2. fixme: type: ignore[assignment] # XXX: clobbers Serializer.fields https://github.com/getsentry/sentry/blob/566f4a0a04d9a9dd6f1a56d13808ea715b913e8b/src/sentry/discover/endpoints/serializers.py#L156
  3. fixme: type: ignore[assignment] # XXX: clobbering Serializer.fields https://github.com/getsentry/sentry/blob/566f4a0a04d9a9dd6f1a56d13808ea715b913e8b/src/sentry/api/serializers/rest_framework/dashboard.py#L143

This comment was generated for commit d408f09afdce51fefdf5bebf8ca59b373ada9a5e

github-actions[bot] avatar Jul 08 '24 03:07 github-actions[bot]

🤖 According to the primer, this change has no effect on the checked open source code. 🤖🎉

This comment was generated for commit 40d5ed89d60a5f35c9a597b938f8a2eb8c30a6ab

github-actions[bot] avatar Jul 08 '24 04:07 github-actions[bot]

In my last few messages, I mentioned updating how the message was extracted in comment-based fixme's so we wouldn't have to use string manipulation(https://github.com/pylint-dev/pylint/pull/9744/commits/198fd93ca02ba16b9619d2a42d218ad09b5cfa6d, https://github.com/pylint-dev/pylint/pull/9744/commits/1ce441c7960421ddd36fb71ea7c346e5652da978). I've decided to revert that change because it was causing a lot of primer test failures. I think this is due to how comment-based fixme's might be a little inconsistent in its current state:

#   TODO: msg1                                        
#   # TODO: msg2
# something # TODO: msg3
# something TODO: msg4

results in:

test.py:1:1: W0511: TODO: msg1 (fixme)
test.py:2:1: W0511: # TODO: msg2 (fixme)
test.py:3:1: W0511: something # TODO: msg3 (fixme)

I wasn't able to replicate what we're doing today using regex capture groups so in favor of not causing any disruptions, I decided to go back to the current method.

If we're open to standardizing some of the decided behavior maybe in the future and allowing changes to the primer tests, I'm also down to discuss!

badsketch avatar Jul 08 '24 05:07 badsketch

@badsketch With the danger of introducing more back and forth: would you be willing to create a proposal for this standardization and apply it to this PR? We can then see the test output and determine whether we are okay with that. That makes it a lot easier to discuss such standardization (with having some examples).

DanielNoord avatar Jul 08 '24 07:07 DanielNoord

@DanielNoord Sure thing, is there a formal way of making these proposals for Pylint features and do I submit it somewhere? Or do you mean try to consider all the usage out there and come back with a more detailed comment?

badsketch avatar Jul 08 '24 12:07 badsketch

No, I meant: just write the code as you would want and make the tests pass. If the test output is acceptable I would be okay with accepting your proposed code.

I don't think we need a full proposal, just the code as you would propose to write it and then being able to see what changes that would give to the test output.

DanielNoord avatar Jul 08 '24 13:07 DanielNoord

🤖 Effect of this PR on checked open source code: 🤖

Effect on astroid: The following messages are no longer emitted:

  1. fixme: # TODO: This should return an Uninferable as this would raise https://github.com/pylint-dev/astroid/blob/6db3a60553ff538a936d5dda23d67a3924a57f45/astroid/brain/brain_dataclasses.py#L186

Effect on black: The following messages are no longer emitted:

  1. fixme: #assert ilabel not in first # XXX failed on <> ... != https://github.com/psf/black/blob/721dff549362f54930ecc038218dcc40e599a875/src/blib2to3/pgen2/pgen.py#L80

Effect on music21: The following messages are no longer emitted:

  1. fixme: # TODO: this file does not import correctly due to first/second https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/test/test_repeat.py#L475
  2. fixme: # TODO: use the linter, reference DOESN'T have to be passed in https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/alpha/analysis/hasher.py#L485
  3. fixme: # TODO: attach \noBeam to note if it is the last note https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/lily/translate.py#L1174
  4. fixme: # TODO: Something with 4.2 Repetitions; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2602
  5. fixme: # TODO: Find out what timeBase means; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2606
  6. fixme: # TODO: make staff numbers relevant; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2610
  7. fixme: # TODO: Turn back on when a smaller work is found... https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/musedata/translate.py#L584
  8. fixme: # TODO: column 17 self.src[16] defines the graphic note type https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/musedata/init.py#L339
  9. fixme: # TODO: write https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/stream/base.py#L13034
  10. fixme: # TODO: write https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/stream/base.py#L13038

Effect on pytest: The following messages are no longer emitted:

  1. fixme: path.strpath # XXX svn? https://github.com/pytest-dev/pytest/blob/16cdacc5a373984bc22c300d76e633c3a44bcd35/src/_pytest/_py/path.py#L193
  2. fixme: # XXX https://github.com/pytest-dev/pytest/blob/16cdacc5a373984bc22c300d76e633c3a44bcd35/src/_pytest/_code/code.py#L913

Effect on pandas: The following messages are no longer emitted:

  1. fixme: e.g. Sparse[bool, False] # TODO: no test cases get here https://github.com/pandas-dev/pandas/blob/61e209e4e9b628e997a648e12e24ac47fa3e1e26/pandas/core/algorithms.py#L158

Effect on sentry: The following messages are no longer emitted:

  1. fixme: type: ignore[assignment] # XXX: clobbers Serializer.fields https://github.com/getsentry/sentry/blob/2a3aacf5227abdc6026b2a0d4c19649b7fd665ca/src/sentry/discover/endpoints/serializers.py#L33
  2. fixme: type: ignore[assignment] # XXX: clobbers Serializer.fields https://github.com/getsentry/sentry/blob/2a3aacf5227abdc6026b2a0d4c19649b7fd665ca/src/sentry/discover/endpoints/serializers.py#L156
  3. fixme: type: ignore[assignment] # XXX: clobbering Serializer.fields https://github.com/getsentry/sentry/blob/2a3aacf5227abdc6026b2a0d4c19649b7fd665ca/src/sentry/api/serializers/rest_framework/dashboard.py#L143

This comment was generated for commit eea95d23a71ae38441ce17a753b7f3a5a4b3d705

github-actions[bot] avatar Jul 14 '24 04:07 github-actions[bot]

@DanielNoord Gotcha, I've updated the functional tests for both comment and docstring fixme's to serve as my final proposal. The latest primer test results also align with what I've proposed. They boil down to:

  • comment fixme's must start with a # then any number of spaces (and only spaces), the fixme keyword, followed by a message
# TODO valid
#              TODO valid
# invalid TODO msg
  • single line docstring fixme's must start with 3 single/double quotes, then any number of spaces (and only spaces), the fixme keyword, followed by a message
'''TODO valid'''
""" TODO valid """
''' invalid TODO msg """
  • multi-line docstring fixme's are within a docstring block, but must be at the beginning of the line. Any number of indentations before it are okay.
'''
TODO valid
invalid TODO msg
'''
def foo():
      """
      TODO valid
      """

The majority of changed primer tests are for comment fixme's that no longer emit. They appear to be fixme's that are part of a larger section of code that was commented out, suggesting the fixme is no longer valid. I think it makes sense for those to no longer be emitted.

badsketch avatar Jul 14 '24 04:07 badsketch

@Pierre-Sassoulas That's a fair point. I think I can optimize it a little by making the((\"\"\")|(\'\'\')) non-capture groups. Would that suffice?

My intuition would be that we could just search for the user defined "TODO" regex in comments and docstrings ? Is this because we want the option to not raise for docstring (for semver/compat with the old behavior) so we need to distinguish the two internally ?

Hm, I'm little unclear what you mean. We're using 3 regexes (comment, single-line docstring, multi-line docstring) for clarity since it's hard to capture all of it in one regex. Also, so that, yes, we don't need to execute a more expensive docstring regex if the option is switched off. Not sure if I answered your question :/

To your point above, we could check if a TODO is present so we don't bother checking for a regex if that keyword isn't there:

    def _is_multiline_docstring(self, token_info: tokenize.TokenInfo) -> bool:
        return (
            token_info.type == tokenize.STRING
            and (token_info.line.lstrip().startswith(('"""', "'''")))
+           and 'TODO' in token_info.line
            and "\n" in token_info.line.rstrip()
        )

What might complicate this is note-rgx is enabled, then we'd be executing a regex anyways

    def _is_multiline_docstring(self, token_info: tokenize.TokenInfo) -> bool:
        return (
            token_info.type == tokenize.STRING
            and (token_info.line.lstrip().startswith(('"""', "'''")))
+           and 'TODO' in token_info.line.search(TODO|XXX|FIXME|{notes.rgx|)
            and "\n" in token_info.line.rstrip()
        )

I didn't make any benchmarks for this but I think this kind of regex executed on each token can have huge performance impact.

I'd be willing to run a profile to make a more convincing argument. Would following this guide https://pylint.readthedocs.io/en/stable/development_guide/contributor_guide/profiling.html be what you had in mind?

badsketch avatar Jul 17 '24 05:07 badsketch

Sorry for the delay, busy week.

We're using 3 regexes (comment, single-line docstring, multi-line docstring) for clarity since it's hard to capture all of it in one regex.

Ok I understand now.

If we consider that fixme not being detected in docstring is a false negative that we're fixing now, we can remove the new check-fixme-in-docstring option. I don't see who would want to track TODO in comments but not in docstring so forcing user to activate the option make pylint worse. What are your thoughts on the matter @DanielNoord ?

I was wondering if the distinction between the 3 regexes, can be removed if we remove the check-fixme-in-docstring option (and only search for notes after detecting that we have a comment or a docstring without making any distinction). Tbf the less regex we have to maintain the happier I am (especially since we need to consider thing like catastrophic backtracking that can bring CVE and are hard to catch with blind benchmarks).

Would following this guide https://pylint.readthedocs.io/en/stable/development_guide/contributor_guide/profiling.html be what you had in mind?

Yes.

Pierre-Sassoulas avatar Jul 20 '24 16:07 Pierre-Sassoulas

I think we previously decided that we didn't want to consider the docstring case a false negative to make the change not too disruptive for exciting comments. I already approved merging this into the fixme warning, I would be okay with going further and not even creating the option but that gives more work to @badsketch again..

DanielNoord avatar Jul 22 '24 07:07 DanielNoord

Right, how about taking a decision based on the benchmark results ? (If making a distinction is slower we remove the distinction)

Pierre-Sassoulas avatar Jul 22 '24 22:07 Pierre-Sassoulas

🤖 Effect of this PR on checked open source code: 🤖

Effect on astroid: The following messages are no longer emitted:

  1. fixme: # TODO: This should return an Uninferable as this would raise https://github.com/pylint-dev/astroid/blob/a93018e12e4992fa3a6d8ebd053c5d3aae70659e/astroid/brain/brain_dataclasses.py#L186

Effect on home-assistant: The following messages are no longer emitted:

  1. unsubscriptable-object: Value 'self.hass.data[DOMAIN]' is unsubscriptable https://github.com/home-assistant/core/blob/975cfa6457e051c5a58054e03046493baa96e7d6/homeassistant/components/media_source/models.py#L89
  2. unsupported-assignment-operation: 'self.hass.data[DOMAIN]' does not support item assignment https://github.com/home-assistant/core/blob/975cfa6457e051c5a58054e03046493baa96e7d6/homeassistant/components/system_health/init.py#L228

Effect on black: The following messages are no longer emitted:

  1. fixme: #assert ilabel not in first # XXX failed on <> ... != https://github.com/psf/black/blob/8827accf560c7be418000962565f1fd6fa7b01cb/src/blib2to3/pgen2/pgen.py#L80

Effect on music21: The following messages are now emitted:

  1. invalid-name: Attribute name "id" doesn't conform to '[a-z_][A-Za-z0-9_]{2,30}$' pattern https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/base.py#L577

The following messages are no longer emitted:

  1. invalid-name: Attribute name "id" doesn't conform to '[a-z_][A-Za-z0-9_]{2,30}$' pattern https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/prebase.py#L293
  2. fixme: # TODO: this file does not import correctly due to first/second https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/test/test_repeat.py#L475
  3. fixme: # TODO: use the linter, reference DOESN'T have to be passed in https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/alpha/analysis/hasher.py#L485
  4. fixme: # TODO: attach \noBeam to note if it is the last note https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/lily/translate.py#L1174
  5. fixme: # TODO: Something with 4.2 Repetitions; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2602
  6. fixme: # TODO: Find out what timeBase means; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2606
  7. fixme: # TODO: make staff numbers relevant; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2610
  8. fixme: # TODO: Turn back on when a smaller work is found... https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/musedata/translate.py#L584
  9. fixme: # TODO: column 17 self.src[16] defines the graphic note type https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/musedata/init.py#L339
  10. fixme: # TODO: write https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/stream/base.py#L13034
  11. fixme: # TODO: write https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/stream/base.py#L13038

Effect on pytest: The following messages are no longer emitted:

  1. fixme: path.strpath # XXX svn? https://github.com/pytest-dev/pytest/blob/643845feb76f99d7619655609e34e78b6a628b32/src/_pytest/_py/path.py#L193
  2. fixme: # XXX https://github.com/pytest-dev/pytest/blob/643845feb76f99d7619655609e34e78b6a628b32/src/_pytest/_code/code.py#L913

Effect on pandas: The following messages are no longer emitted:

  1. fixme: e.g. Sparse[bool, False] # TODO: no test cases get here https://github.com/pandas-dev/pandas/blob/67a58cddc2f8c0e30cb0123589947d9b3f073720/pandas/core/algorithms.py#L158

Effect on sentry: The following messages are now emitted:

  1. no-name-in-module: No name 'executor' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/runner/commands/migrations.py#L34
  2. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/middleware/auth.py#L3
  3. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/middleware/customer_domain.py#L7
  4. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/frontend/auth_logout.py#L1
  5. import-error: Unable to import 'django.middleware.csrf' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/frontend/react_page.py#L10
  6. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/frontend/base.py#L10
  7. import-error: Unable to import 'django.middleware.csrf' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/frontend/base.py#L19
  8. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/frontend/auth_login.py#L9
  9. import-error: Unable to import 'django.middleware.csrf' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/frontend/csrf_failure.py#L5
  10. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/frontend/accounts.py#L5
  11. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/frontend/accounts.py#L6
  12. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/forms/accounts.py#L10
  13. no-member: Instance of 'FlexibleForeignKey' has no 'proxy_user' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/sentry_apps/installations.py#L52
  14. no-member: Instance of 'FlexibleForeignKey' has no 'application' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/sentry_apps/installations.py#L53
  15. no-member: Instance of 'FlexibleForeignKey' has no 'scope_list' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/sentry_apps/installations.py#L54
  16. no-member: Instance of 'FlexibleForeignKey' has no 'slug' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/sentry_apps/installations.py#L85
  17. no-member: Instance of 'OneToOneField' has no 'save' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/sentry_apps/apps.py#L237
  18. no-member: Instance of 'FlexibleForeignKey' has no 'absolute_url' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/data_export/models.py#L106
  19. no-member: Instance of 'FlexibleForeignKey' has no 'slug' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/data_export/models.py#L107
  20. abstract-method: Method 'prepare_default' is abstract in class 'BaseDatabaseSchemaEditor' but is not overridden in child class 'SafePostgresDatabaseSchemaEditor' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/postgres/schema.py#L65
  21. no-member: Super of 'DatabaseWrapper' has no '_set_isolation_level' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/postgres/base.py#L104
  22. abstract-method: Method 'defer' is abstract in class 'BaseQuerySet' but is not overridden in child class 'ParanoidQuerySet' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/paranoia.py#L18
  23. abstract-method: Method 'only' is abstract in class 'BaseQuerySet' but is not overridden in child class 'ParanoidQuerySet' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/paranoia.py#L18
  24. abstract-method: Method 'get_cache_name' is abstract in class 'FieldCacheMixin' but is not overridden in child class 'FlexibleForeignKey' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/foreignkey.py#L11
  25. abstract-method: Method 'get_cache_name' is abstract in class 'FieldCacheMixin' but is not overridden in child class 'OneToOneCascadeDeletes' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/onetoone.py#L9
  26. abstract-method: Method 'rand' is abstract in class 'Combinable' but is not overridden in child class 'NoPrepareMixin' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L125
  27. abstract-method: Method 'ror' is abstract in class 'Combinable' but is not overridden in child class 'NoPrepareMixin' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L125
  28. abstract-method: Method 'rxor' is abstract in class 'Combinable' but is not overridden in child class 'NoPrepareMixin' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L125
  29. abstract-method: Method 'as_sql' is abstract in class 'BaseExpression' but is not overridden in child class 'NoPrepareMixin' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L125
  30. abstract-method: Method 'rand' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldExactLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L130
  31. abstract-method: Method 'ror' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldExactLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L130
  32. abstract-method: Method 'rxor' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldExactLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L130
  33. too-many-ancestors: Too many ancestors (8/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L130
  34. abstract-method: Method 'rand' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldIExactLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L135
  35. abstract-method: Method 'ror' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldIExactLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L135
  36. abstract-method: Method 'rxor' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldIExactLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L135
  37. abstract-method: Method 'rand' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldInLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L140
  38. abstract-method: Method 'ror' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldInLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L140
  39. abstract-method: Method 'rxor' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldInLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L140
  40. too-many-ancestors: Too many ancestors (9/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L140
  41. abstract-method: Method 'rand' is abstract in class 'Combinable' but is not overridden in child class 'ContainsLookupMixin' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L148
  42. abstract-method: Method 'ror' is abstract in class 'Combinable' but is not overridden in child class 'ContainsLookupMixin' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L148
  43. abstract-method: Method 'rxor' is abstract in class 'Combinable' but is not overridden in child class 'ContainsLookupMixin' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L148
  44. abstract-method: Method 'as_sql' is abstract in class 'BaseExpression' but is not overridden in child class 'ContainsLookupMixin' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L148
  45. abstract-method: Method 'rand' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldContainsLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L160
  46. abstract-method: Method 'ror' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldContainsLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L160
  47. abstract-method: Method 'rxor' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldContainsLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L160
  48. too-many-ancestors: Too many ancestors (8/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L160
  49. abstract-method: Method 'rand' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldIContainsLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L164
  50. abstract-method: Method 'ror' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldIContainsLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L164
  51. abstract-method: Method 'rxor' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldIContainsLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L164
  52. too-many-ancestors: Too many ancestors (9/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L164
  53. abstract-method: Method 'rand' is abstract in class 'Combinable' but is not overridden in child class 'IdOrSlugLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/slug.py#L15
  54. abstract-method: Method 'ror' is abstract in class 'Combinable' but is not overridden in child class 'IdOrSlugLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/slug.py#L15
  55. abstract-method: Method 'rxor' is abstract in class 'Combinable' but is not overridden in child class 'IdOrSlugLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/slug.py#L15
  56. no-name-in-module: No name 'loader' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/management/commands/makemigrations.py#L6
  57. no-member: Instance of 'FlexibleForeignKey' has no 'slug' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L635
  58. no-member: Instance of 'FlexibleForeignKey' has no 'id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L636
  59. no-member: Instance of 'FlexibleForeignKey' has no 'slug' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L656
  60. no-member: Instance of 'FlexibleForeignKey' has no 'get_option' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L659
  61. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L679
  62. no-member: Instance of 'FlexibleForeignKey' has no 'flags' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L698
  63. no-member: Instance of 'FlexibleForeignKey' has no 'version' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L839
  64. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L890
  65. no-member: Instance of 'FlexibleForeignKey' has no 'organization_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L915
  66. no-member: Instance of 'FlexibleForeignKey' has no 'organization_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/authidentity.py#L36
  67. no-member: Instance of 'FlexibleForeignKey' has no 'get_display_name' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/authidentity.py#L71
  68. no-member: Instance of 'FlexibleForeignKey' has no 'get_label' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/authidentity.py#L74
  69. no-member: Instance of 'ManyToManyField' has no 'all' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/release.py#L606
  70. no-member: Instance of 'FlexibleForeignKey' has no 'id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/release.py#L791
  71. no-member: Instance of 'ManyToManyField' has no 'values_list' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/release.py#L962
  72. no-member: Instance of 'FlexibleForeignKey' has no 'id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/release.py#L990
  73. no-member: Instance of 'FlexibleForeignKey' has no 'key' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/auditlogentry.py#L98
  74. no-member: Instance of 'FlexibleForeignKey' has no 'get_display_name' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/auditlogentry.py#L164
  75. no-member: Instance of 'FlexibleForeignKey' has no 'key' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/auditlogentry.py#L166
  76. no-member: Instance of 'FlexibleForeignKey' has no 'member_set' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/team.py#L224
  77. no-member: Instance of 'FlexibleForeignKey' has no 'email' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/useremail.py#L98
  78. no-member: Instance of 'FlexibleForeignKey' has no 'organization_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L46
  79. no-member: Instance of 'FlexibleForeignKey' has no 'slug' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L75
  80. no-member: Instance of 'FlexibleForeignKey' has no 'get_email' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L77
  81. no-member: Instance of 'FlexibleForeignKey' has no 'role' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L87
  82. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L90
  83. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L103
  84. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L104
  85. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L105
  86. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L107
  87. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L109
  88. no-member: Instance of 'FlexibleForeignKey' has no 'id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/projectcodeowners.py#L123
  89. no-member: Instance of 'FlexibleForeignKey' has no 'type' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/identity.py#L216
  90. redefined-variable-type: Redefinition of qs type from sentry.db.models.manager.base_query_set.BaseQuerySet to django.db.models.query.QuerySet https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/projectkey.py#L61
  91. no-member: Instance of 'FlexibleForeignKey' has no 'organization_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/projectkey.py#L219
  92. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/projectkey.py#L223
  93. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/projectkey.py#L292
  94. no-member: Instance of 'FlexibleForeignKey' has no 'organization_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/projectkey.py#L304
  95. no-member: Instance of 'FlexibleForeignKey' has no 'issue_category' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/groupsnooze.py#L124
  96. no-member: Instance of 'FlexibleForeignKey' has no 'project' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/groupsnooze.py#L128
  97. no-member: Instance of 'FlexibleForeignKey' has no 'issue_category' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/groupsnooze.py#L185
  98. no-member: Instance of 'FlexibleForeignKey' has no 'project' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/groupsnooze.py#L189
  99. no-member: Instance of 'FlexibleForeignKey' has no 'absolute_url' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmember.py#L344
  100. no-member: Instance of 'FlexibleForeignKey' has no 'slug' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmember.py#L375
  101. no-member: Instance of 'FlexibleForeignKey' has no 'get_scopes' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmember.py#L508
  102. no-member: Instance of 'FlexibleForeignKey' has no 'get_option' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmember.py#L522
  103. no-member: Instance of 'FlexibleForeignKey' has no 'get_scopes' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmember.py#L610
  104. no-member: Instance of 'FlexibleForeignKey' has no 'get_members_with_org_roles' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmember.py#L619
  105. no-member: Instance of 'FlexibleForeignKey' has no 'headers' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/debugfile.py#L151
  106. no-member: Instance of 'FlexibleForeignKey' has no 'delete' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/debugfile.py#L199
  107. no-member: Instance of 'FlexibleForeignKey' has no 'get_allowed_origins' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/apitoken.py#L281
  108. no-member: Instance of 'FlexibleForeignKey' has no 'id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/dynamicsampling.py#L256
  109. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationaccessrequest.py#L32
  110. no-member: Instance of 'FlexibleForeignKey' has no 'user_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationaccessrequest.py#L33
  111. no-member: Instance of 'FlexibleForeignKey' has no 'user_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationaccessrequest.py#L35
  112. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationaccessrequest.py#L71
  113. no-member: Instance of 'FlexibleForeignKey' has no 'user_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationaccessrequest.py#L81
  114. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationaccessrequest.py#L83
  115. no-member: Instance of 'ManyToManyField' has no 'all' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/project.py#L452
  116. no-member: Instance of 'FlexibleForeignKey' has no 'update' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/activity.py#L174
  117. no-member: Instance of 'FlexibleForeignKey' has no 'update' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/activity.py#L187
  118. no-member: Instance of 'ManyToManyField' has no 'values_list' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/userrole.py#L48
  119. no-member: Instance of 'FlexibleForeignKey' has no 'email' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/authenticator.py#L195
  120. no-member: Instance of 'FlexibleForeignKey' has no 'application_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/integrations/sentry_app_installation.py#L175
  121. no-member: Instance of 'OneToOneField' has no 'outboxes_for_update' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/integrations/sentry_app_installation.py#L204
  122. no-member: Instance of 'OneToOneField' has no 'user_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/integrations/sentry_app_installation.py#L234
  123. no-member: Instance of 'OneToOneField' has no 'client_secret' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/integrations/sentry_app.py#L215
  124. no-member: Instance of 'FlexibleForeignKey' has no 'id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/integrations/external_actor.py#L73
  125. no-member: Instance of 'FlexibleForeignKey' has no 'id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/integrations/external_actor.py#L77
  126. no-member: Instance of 'FlexibleForeignKey' has no 'outboxes_for_update' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/integrations/sentry_app_installation_token.py#L81
  127. abstract-method: Method 'defer' is abstract in class 'BaseQuerySet' but is not overridden in child class 'ReleaseQuerySet' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/releases/util.py#L41
  128. abstract-method: Method 'only' is abstract in class 'BaseQuerySet' but is not overridden in child class 'ReleaseQuerySet' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/releases/util.py#L41
  129. no-member: Instance of 'QuerySet' has no 'annotate_prerelease_column' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/releases/util.py#L111
  130. no-member: Instance of 'FlexibleForeignKey' has no 'alertruletrigger_set' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/incidents/models/alert_rule_activations.py#L96
  131. no-member: Instance of 'FlexibleForeignKey' has no 'snuba_query' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/incidents/models/alert_rule_activations.py#L106
  132. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L11
  133. import-error: Unable to import 'django.contrib.auth.backends' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L12
  134. missing-function-docstring: Missing function or method docstring https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L414
  135. unused-argument: Unused argument 'request' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L415
  136. no-self-use: Method could be a function https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L414
  137. missing-function-docstring: Missing function or method docstring https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L433
  138. unused-argument: Unused argument 'user' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L433
  139. no-self-use: Method could be a function https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L433
  140. missing-function-docstring: Missing function or method docstring https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L436
  141. no-self-use: Method could be a function https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L436
  142. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/auth/providers/saml2/provider.py#L5
  143. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0632_apitoken_backfill_last_chars.py#L5
  144. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0645_backfill_add_uuid_to_all_rule_actions.py#L7
  145. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0677_unpickle_project_options_again.py#L5
  146. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0711_backfill_group_attributes_to_self_hosted.py#L13
  147. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0680_unpickle_options_again.py#L5
  148. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0730_add_subscription_fk_to_incident.py#L8
  149. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0514_migrate_priority_saved_searches.py#L5
  150. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0670_monitor_incident_cleanup_duplicates.py#L5
  151. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0641_backfill_group_attributes.py#L11
  152. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0507_delete_pending_deletion_rules.py#L8
  153. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0492_pickle_to_json_sentry_groupedmessage.py#L6
  154. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0634_backfill_github_webhook_outbox_shard_ids.py#L8
  155. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0654_rename_priority_sort_to_trends.py#L5
  156. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0674_monitor_clear_missed_timeout_as_error.py#L5
  157. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0702_alert_rule_project_backfill_migration_2.py#L8
  158. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0528_truncate_flat_index.py#L5
  159. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0550_migrate_no_action_dupe_issue_alerts.py#L8
  160. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0546_backfill_fix_bad_xactors.py#L5
  161. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0566_remove_cron_missed_margins_zero.py#L5
  162. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0515_slugify_invalid_monitors.py#L8
  163. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0681_unpickle_authenticator_again.py#L5
  164. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0619_monitors_migrate_is_muted.py#L5
  165. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0537_backfill_xactor_team_and_user_ids.py#L5
  166. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0675_dashboard_widget_query_rename_priority_sort_to_trends.py#L5
  167. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0517_backfill_pagerdutyservices_into_org_integrations.py#L5
  168. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0522_migrate_discover_savedquery_worldmaps.py#L5
  169. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0644_backfill_priority_for_groups.py#L9
  170. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0587_remove_unused_neglectedrule_rows.py#L5
  171. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0493_pickle_to_json_sentry_activity.py#L6
  172. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0500_set_none_date_last_modified_to_date_uploaded.py#L5
  173. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0568_monitors_fix_next_checkin_latest.py#L7
  174. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0521_migrate_world_map_widgets.py#L5
  175. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0561_backfill_new_notification_tables.py#L9
  176. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0527_backfill_next_checkin_latest.py#L5
  177. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0502_savedsearch_update_me_myteams.py#L6
  178. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0672_backfill_ukraine_timezone_name.py#L5
  179. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0687_alert_rule_project_backfill_migration.py#L7
  180. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0660_fix_cron_monitor_invalid_orgs.py#L5
  181. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0739_backfill_group_info_to_group_attributes.py#L13
  182. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0565_fix_diff_env_dupe_alerts.py#L8
  183. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0538_remove_name_data_from_rule.py#L5
  184. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0726_apitoken_backfill_hashes.py#L9
  185. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0742_backfill_alertrule_detection_type.py#L5
  186. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0511_pickle_to_json_sentry_rawevent.py#L6
  187. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0574_backfill_weekly_report_settings.py#L5
  188. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0729_backfill_groupsearchviews_with_pinned_searches.py#L5
  189. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0621_set_muted_monitors_to_active.py#L5
  190. no-member: Instance of 'FlexibleForeignKey' has no 'aggregates' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/sentry_metrics/models/spanattributeextractionrules.py#L38
  191. no-name-in-module: No name 'executor' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/new_migrations/monkey/executor.py#L6
  192. no-name-in-module: No name 'fields' in module 'django.db.migrations.operations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/new_migrations/monkey/executor.py#L9
  193. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/new_migrations/monkey/executor.py#L11
  194. no-name-in-module: No name 'executor' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/new_migrations/monkey/init.py#L82
  195. no-name-in-module: No name 'writer' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/new_migrations/monkey/init.py#L82
  196. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/api/exceptions.py#L3
  197. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/api/endpoints/auth_config.py#L2
  198. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/api/endpoints/auth_index.py#L3
  199. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/api/endpoints/user_details.py#L6
  200. no-member: Instance of 'ManyToManyField' has no 'set' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/api/serializers/rest_framework/notification_action.py#L361
  201. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L26
  202. no-name-in-module: No name 'executor' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L31
  203. no-name-in-module: No name 'client' in module 'django.test' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L827
  204. too-many-ancestors: Too many ancestors (10/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2042
  205. no-member: Instance of 'MetricsEnhancedPerformanceTestCase' has no 'features' member; maybe 'feature'? https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2111
  206. no-member: Instance of 'MetricsEnhancedPerformanceTestCase' has no 'url' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2112
  207. too-many-ancestors: Too many ancestors (8/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2422
  208. no-member: Instance of 'ActivityTestCase' has no 'org' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2794
  209. no-member: Instance of 'ActivityTestCase' has no 'org' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2802
  210. no-member: Instance of 'ActivityTestCase' has no 'org' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2804
  211. no-member: Instance of 'ActivityTestCase' has no 'org' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2810
  212. no-member: Instance of 'ActivityTestCase' has no 'project2' member; maybe 'project'? https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2825
  213. no-member: Instance of 'ActivityTestCase' has no 'org' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2827
  214. too-many-ancestors: Too many ancestors (8/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2839
  215. too-many-ancestors: Too many ancestors (8/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L3019
  216. too-many-ancestors: Too many ancestors (8/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/helpers/backups.py#L847

The following messages are no longer emitted:

  1. fixme: type: ignore[assignment] # XXX: clobbers Serializer.fields https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/discover/endpoints/serializers.py#L33
  2. fixme: type: ignore[assignment] # XXX: clobbers Serializer.fields https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/discover/endpoints/serializers.py#L156
  3. import-error: Unable to import 'django.db.models.deletion' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0516_switch_pagerduty_silo.py#L3
  4. no-name-in-module: No name 'deletion' in module 'django.db.models' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0516_switch_pagerduty_silo.py#L3
  5. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0516_switch_pagerduty_silo.py#L4
  6. no-member: Module 'django.db.models' has no 'deletion' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0516_switch_pagerduty_silo.py#L38
  7. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0516_switch_pagerduty_silo.py#L11
  8. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0694_db_index_alert_rule_actions.py#L3
  9. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0694_db_index_alert_rule_actions.py#L8
  10. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0565_fix_diff_env_dupe_alerts.py#L6
  11. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0565_fix_diff_env_dupe_alerts.py#L8
  12. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0565_fix_diff_env_dupe_alerts.py#L75
  13. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0498_typed_bitfield.py#L3
  14. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0498_typed_bitfield.py#L9
  15. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0525_add_next_checkin_latest.py#L3
  16. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0525_add_next_checkin_latest.py#L8
  17. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0529_remove_pagerduty_service.py#L3
  18. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0529_remove_pagerduty_service.py#L8
  19. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0609_remove_notification_setting_model.py#L3
  20. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0609_remove_notification_setting_model.py#L8
  21. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0487_add_indexes_to_bundles.py#L3
  22. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0487_add_indexes_to_bundles.py#L8
  23. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0724_discover_saved_query_dataset.py#L3
  24. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0724_discover_saved_query_dataset.py#L9
  25. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0674_monitor_clear_missed_timeout_as_error.py#L3
  26. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0674_monitor_clear_missed_timeout_as_error.py#L5
  27. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0674_monitor_clear_missed_timeout_as_error.py#L26
  28. import-error: Unable to import 'django.apps.registry' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0701_backfill_alertrule_user_team.py#L3
  29. no-name-in-module: No name 'apps' in module 'django' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0701_backfill_alertrule_user_team.py#L3
  30. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0701_backfill_alertrule_user_team.py#L4
  31. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0701_backfill_alertrule_user_team.py#L30
  32. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0671_enforce_unqiue_active_incidents.py#L3
  33. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0671_enforce_unqiue_active_incidents.py#L8
  34. import-error: Unable to import 'django.db.models.deletion' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0652_alert_rule_activation_condition.py#L3
  35. no-name-in-module: No name 'deletion' in module 'django.db.models' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0652_alert_rule_activation_condition.py#L3
  36. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0652_alert_rule_activation_condition.py#L5
  37. no-member: Module 'django.db.models' has no 'deletion' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0652_alert_rule_activation_condition.py#L45
  38. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0652_alert_rule_activation_condition.py#L12
  39. import-error: Unable to import 'django.apps.registry' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0706_grouphistory_userteam_backfill.py#L4
  40. no-name-in-module: No name 'apps' in module 'django' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0706_grouphistory_userteam_backfill.py#L4
  41. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0706_grouphistory_userteam_backfill.py#L5
  42. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0706_grouphistory_userteam_backfill.py#L34
  43. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0654_rename_priority_sort_to_trends.py#L3
  44. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0654_rename_priority_sort_to_trends.py#L5
  45. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0654_rename_priority_sort_to_trends.py#L23
  46. import-error: Unable to import 'django.db.models.deletion' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0690_remove_project_team_avatar.py#L3
  47. no-name-in-module: No name 'deletion' in module 'django.db.models' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0690_remove_project_team_avatar.py#L3
  48. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0690_remove_project_team_avatar.py#L4
  49. no-member: Module 'django.db.models' has no 'deletion' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0690_remove_project_team_avatar.py#L33
  50. no-member: Module 'django.db.models' has no 'deletion' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0690_remove_project_team_avatar.py#L44
  51. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0690_remove_project_team_avatar.py#L10
  52. import-error: Unable to import 'django.db.models.deletion' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0559_custom_dynamic_sampling_rule.py#L3
  53. no-name-in-module: No name 'deletion' in module 'django.db.models' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0559_custom_dynamic_sampling_rule.py#L3
  54. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0559_custom_dynamic_sampling_rule.py#L5
  55. no-member: Module 'django.db.models' has no 'deletion' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0559_custom_dynamic_sampling_rule.py#L52
  56. no-member: Module 'django.db.models' has no 'deletion' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0559_custom_dynamic_sampling_rule.py#L72
  57. no-member: Module 'django.db.models' has no 'deletion' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0559_custom_dynamic_sampling_rule.py#L79
  58. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0559_custom_dynamic_sampling_rule.py#L12
  59. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0742_backfill_alertrule_detection_type.py#L3
  60. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0742_backfill_alertrule_detection_type.py#L5
  61. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0742_backfill_alertrule_detection_type.py#L32
  62. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0645_backfill_add_uuid_to_all_rule_actions.py#L5
  63. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0645_backfill_add_uuid_to_all_rule_actions.py#L7
  64. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0645_backfill_add_uuid_to_all_rule_actions.py#L57
  65. import-error: Unable to import 'django.db.models.deletion' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0730_add_subscription_fk_to_incident.py#L5
  66. no-name-in-module: No name 'deletion' in module 'django.db.models' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0730_add_subscription_fk_to_incident.py#L5
  67. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0730_add_subscription_fk_to_incident.py#L6
  68. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0730_add_subscription_fk_to_incident.py#L8
  69. no-member: Module 'django.db.models' has no 'deletion' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0730_add_subscription_fk_to_incident.py#L73
  70. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0730_add_subscription_fk_to_incident.py#L48
  71. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0610_remove_notification_setting_table.py#L3
  72. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0610_remove_notification_setting_table.py#L8
  73. no-name-in-module: *No name 'mi...

This comment was truncated because GitHub allows only 65536 characters in a comment.

This comment was generated for commit cec41a25f1277c384cb67617ca8a57f5c345e4e6

github-actions[bot] avatar Jul 25 '24 05:07 github-actions[bot]

Please let me know if the following is an accurate profiling case. I ran it on the pylint base and measured cumulative time of process_tokens() in misc.py

main without check-fixme-in-docstring

ncalls  tottime  percall  cumtime  percall filename:lineno(function)
175    0.011    0.000    0.013    0.000 /Users/moss/projects/pylint/pylint/checkers/misc.py:131(process_tokens)

Previously this PR with check-fixme-in-docstring on

ncalls  tottime  percall  cumtime  percall filename:lineno(function)
175    0.073    0.000    0.120    0.001 /Users/moss/projects/pylint/pylint/checkers/misc.py:150(process_tokens)

Considering total cumtime has almost 10x, I assume this isn't insignificant.

BUT I just made a change in the most recent commit (https://github.com/pylint-dev/pylint/pull/9744/commits/d06c5622a9b9ffa6f977807c827b2c1eb027f551) and was able to shave it down to

ncalls  tottime  percall  cumtime  percall filename:lineno(function)
175    0.048    0.000    0.077    0.000 /Users/moss/projects/pylint/pylint/checkers/misc.py:150(process_tokens)

I think this is a bit more reasonable since cumulative percall is back down to 0.000?

I was wondering if the distinction between the 3 regexes, can be removed if we remove the check-fixme-in-docstring option (and only search for notes after detecting that we have a comment or a docstring without making any distinction). Tbf the less regex we have to maintain the happier I am (especially since we need to consider thing like catastrophic backtracking that can bring CVE and are hard to catch with blind benchmarks).

Forgive me if I'm still misunderstanding, but I'm not sure if removing the distinction would help. I tried using one regex originally for both comments and docstrings, but having a one-size fits all regex becomes unwieldy. Most of the complexity arises when trying to extract the TODO message to be outputted. The multi-line docstrings have some edge scenarios when there are multiple on different lines with different spacings.

TokenInfo(type=3 (STRING), string='""" TODO: do this """', start=(2, 0), end=(2, 21), line='""" TODO: do this """\n')
TokenInfo(type=3 (STRING), string='"""\n        TODO: do this\n        TODO: do that\n"""', start=(3, 0), end=(6, 3), line='"""\n        TODO: do this\n        TODO: do that\n"""')

I'm worried I'd produce a regex that's harder to understand with greater risk of potential catastrophic backtracking.

EDIT The latest primer tests are now no longer emitting completely different messages like unsubscriptable-object and unsupported-assignment-operation. Could be false negatives, will look into this.

badsketch avatar Jul 25 '24 05:07 badsketch

🤖 Effect of this PR on checked open source code: 🤖

Effect on astroid: The following messages are no longer emitted:

  1. fixme: # TODO: This should return an Uninferable as this would raise https://github.com/pylint-dev/astroid/blob/a93018e12e4992fa3a6d8ebd053c5d3aae70659e/astroid/brain/brain_dataclasses.py#L186

Effect on home-assistant: The following messages are no longer emitted:

  1. unsubscriptable-object: Value 'self.hass.data[DOMAIN]' is unsubscriptable https://github.com/home-assistant/core/blob/975cfa6457e051c5a58054e03046493baa96e7d6/homeassistant/components/media_source/models.py#L89
  2. unsupported-assignment-operation: 'self.hass.data[DOMAIN]' does not support item assignment https://github.com/home-assistant/core/blob/975cfa6457e051c5a58054e03046493baa96e7d6/homeassistant/components/system_health/init.py#L228

Effect on black: The following messages are no longer emitted:

  1. fixme: #assert ilabel not in first # XXX failed on <> ... != https://github.com/psf/black/blob/8827accf560c7be418000962565f1fd6fa7b01cb/src/blib2to3/pgen2/pgen.py#L80

Effect on music21: The following messages are now emitted:

  1. invalid-name: Attribute name "id" doesn't conform to '[a-z_][A-Za-z0-9_]{2,30}$' pattern https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/base.py#L577

The following messages are no longer emitted:

  1. invalid-name: Attribute name "id" doesn't conform to '[a-z_][A-Za-z0-9_]{2,30}$' pattern https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/prebase.py#L293
  2. fixme: # TODO: this file does not import correctly due to first/second https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/test/test_repeat.py#L475
  3. fixme: # TODO: use the linter, reference DOESN'T have to be passed in https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/alpha/analysis/hasher.py#L485
  4. fixme: # TODO: attach \noBeam to note if it is the last note https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/lily/translate.py#L1174
  5. fixme: # TODO: Something with 4.2 Repetitions; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2602
  6. fixme: # TODO: Find out what timeBase means; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2606
  7. fixme: # TODO: make staff numbers relevant; not in hum2xml https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/humdrum/spineParser.py#L2610
  8. fixme: # TODO: Turn back on when a smaller work is found... https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/musedata/translate.py#L584
  9. fixme: # TODO: column 17 self.src[16] defines the graphic note type https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/musedata/init.py#L339
  10. fixme: # TODO: write https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/stream/base.py#L13034
  11. fixme: # TODO: write https://github.com/cuthbertLab/music21/blob/204e9d0b9eec2f2d6ff8d8d3b13c41f912050604/music21/stream/base.py#L13038

Effect on pytest: The following messages are no longer emitted:

  1. fixme: path.strpath # XXX svn? https://github.com/pytest-dev/pytest/blob/643845feb76f99d7619655609e34e78b6a628b32/src/_pytest/_py/path.py#L193
  2. fixme: # XXX https://github.com/pytest-dev/pytest/blob/643845feb76f99d7619655609e34e78b6a628b32/src/_pytest/_code/code.py#L913

Effect on pandas: The following messages are no longer emitted:

  1. fixme: e.g. Sparse[bool, False] # TODO: no test cases get here https://github.com/pandas-dev/pandas/blob/67a58cddc2f8c0e30cb0123589947d9b3f073720/pandas/core/algorithms.py#L158

Effect on sentry: The following messages are now emitted:

  1. no-name-in-module: No name 'executor' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/runner/commands/migrations.py#L34
  2. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/middleware/auth.py#L3
  3. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/middleware/customer_domain.py#L7
  4. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/frontend/auth_logout.py#L1
  5. import-error: Unable to import 'django.middleware.csrf' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/frontend/react_page.py#L10
  6. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/frontend/base.py#L10
  7. import-error: Unable to import 'django.middleware.csrf' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/frontend/base.py#L19
  8. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/frontend/auth_login.py#L9
  9. import-error: Unable to import 'django.middleware.csrf' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/frontend/csrf_failure.py#L5
  10. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/frontend/accounts.py#L5
  11. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/frontend/accounts.py#L6
  12. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/web/forms/accounts.py#L10
  13. no-member: Instance of 'FlexibleForeignKey' has no 'proxy_user' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/sentry_apps/installations.py#L52
  14. no-member: Instance of 'FlexibleForeignKey' has no 'application' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/sentry_apps/installations.py#L53
  15. no-member: Instance of 'FlexibleForeignKey' has no 'scope_list' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/sentry_apps/installations.py#L54
  16. no-member: Instance of 'FlexibleForeignKey' has no 'slug' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/sentry_apps/installations.py#L85
  17. no-member: Instance of 'OneToOneField' has no 'save' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/sentry_apps/apps.py#L237
  18. no-member: Instance of 'FlexibleForeignKey' has no 'absolute_url' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/data_export/models.py#L106
  19. no-member: Instance of 'FlexibleForeignKey' has no 'slug' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/data_export/models.py#L107
  20. abstract-method: Method 'prepare_default' is abstract in class 'BaseDatabaseSchemaEditor' but is not overridden in child class 'SafePostgresDatabaseSchemaEditor' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/postgres/schema.py#L65
  21. no-member: Super of 'DatabaseWrapper' has no '_set_isolation_level' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/postgres/base.py#L104
  22. abstract-method: Method 'defer' is abstract in class 'BaseQuerySet' but is not overridden in child class 'ParanoidQuerySet' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/paranoia.py#L18
  23. abstract-method: Method 'only' is abstract in class 'BaseQuerySet' but is not overridden in child class 'ParanoidQuerySet' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/paranoia.py#L18
  24. abstract-method: Method 'get_cache_name' is abstract in class 'FieldCacheMixin' but is not overridden in child class 'FlexibleForeignKey' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/foreignkey.py#L11
  25. abstract-method: Method 'get_cache_name' is abstract in class 'FieldCacheMixin' but is not overridden in child class 'OneToOneCascadeDeletes' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/onetoone.py#L9
  26. abstract-method: Method 'rand' is abstract in class 'Combinable' but is not overridden in child class 'NoPrepareMixin' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L125
  27. abstract-method: Method 'ror' is abstract in class 'Combinable' but is not overridden in child class 'NoPrepareMixin' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L125
  28. abstract-method: Method 'rxor' is abstract in class 'Combinable' but is not overridden in child class 'NoPrepareMixin' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L125
  29. abstract-method: Method 'as_sql' is abstract in class 'BaseExpression' but is not overridden in child class 'NoPrepareMixin' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L125
  30. abstract-method: Method 'rand' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldExactLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L130
  31. abstract-method: Method 'ror' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldExactLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L130
  32. abstract-method: Method 'rxor' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldExactLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L130
  33. too-many-ancestors: Too many ancestors (8/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L130
  34. abstract-method: Method 'rand' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldIExactLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L135
  35. abstract-method: Method 'ror' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldIExactLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L135
  36. abstract-method: Method 'rxor' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldIExactLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L135
  37. abstract-method: Method 'rand' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldInLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L140
  38. abstract-method: Method 'ror' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldInLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L140
  39. abstract-method: Method 'rxor' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldInLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L140
  40. too-many-ancestors: Too many ancestors (9/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L140
  41. abstract-method: Method 'rand' is abstract in class 'Combinable' but is not overridden in child class 'ContainsLookupMixin' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L148
  42. abstract-method: Method 'ror' is abstract in class 'Combinable' but is not overridden in child class 'ContainsLookupMixin' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L148
  43. abstract-method: Method 'rxor' is abstract in class 'Combinable' but is not overridden in child class 'ContainsLookupMixin' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L148
  44. abstract-method: Method 'as_sql' is abstract in class 'BaseExpression' but is not overridden in child class 'ContainsLookupMixin' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L148
  45. abstract-method: Method 'rand' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldContainsLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L160
  46. abstract-method: Method 'ror' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldContainsLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L160
  47. abstract-method: Method 'rxor' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldContainsLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L160
  48. too-many-ancestors: Too many ancestors (8/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L160
  49. abstract-method: Method 'rand' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldIContainsLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L164
  50. abstract-method: Method 'ror' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldIContainsLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L164
  51. abstract-method: Method 'rxor' is abstract in class 'Combinable' but is not overridden in child class 'JSONFieldIContainsLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L164
  52. too-many-ancestors: Too many ancestors (9/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/jsonfield.py#L164
  53. abstract-method: Method 'rand' is abstract in class 'Combinable' but is not overridden in child class 'IdOrSlugLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/slug.py#L15
  54. abstract-method: Method 'ror' is abstract in class 'Combinable' but is not overridden in child class 'IdOrSlugLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/slug.py#L15
  55. abstract-method: Method 'rxor' is abstract in class 'Combinable' but is not overridden in child class 'IdOrSlugLookup' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/db/models/fields/slug.py#L15
  56. no-name-in-module: No name 'loader' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/management/commands/makemigrations.py#L6
  57. no-member: Instance of 'FlexibleForeignKey' has no 'slug' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L635
  58. no-member: Instance of 'FlexibleForeignKey' has no 'id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L636
  59. no-member: Instance of 'FlexibleForeignKey' has no 'slug' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L656
  60. no-member: Instance of 'FlexibleForeignKey' has no 'get_option' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L659
  61. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L679
  62. no-member: Instance of 'FlexibleForeignKey' has no 'flags' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L698
  63. no-member: Instance of 'FlexibleForeignKey' has no 'version' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L839
  64. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L890
  65. no-member: Instance of 'FlexibleForeignKey' has no 'organization_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/group.py#L915
  66. no-member: Instance of 'FlexibleForeignKey' has no 'organization_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/authidentity.py#L36
  67. no-member: Instance of 'FlexibleForeignKey' has no 'get_display_name' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/authidentity.py#L71
  68. no-member: Instance of 'FlexibleForeignKey' has no 'get_label' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/authidentity.py#L74
  69. no-member: Instance of 'ManyToManyField' has no 'all' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/release.py#L606
  70. no-member: Instance of 'FlexibleForeignKey' has no 'id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/release.py#L791
  71. no-member: Instance of 'ManyToManyField' has no 'values_list' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/release.py#L962
  72. no-member: Instance of 'FlexibleForeignKey' has no 'id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/release.py#L990
  73. no-member: Instance of 'FlexibleForeignKey' has no 'key' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/auditlogentry.py#L98
  74. no-member: Instance of 'FlexibleForeignKey' has no 'get_display_name' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/auditlogentry.py#L164
  75. no-member: Instance of 'FlexibleForeignKey' has no 'key' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/auditlogentry.py#L166
  76. no-member: Instance of 'FlexibleForeignKey' has no 'member_set' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/team.py#L224
  77. no-member: Instance of 'FlexibleForeignKey' has no 'email' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/useremail.py#L98
  78. no-member: Instance of 'FlexibleForeignKey' has no 'organization_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L46
  79. no-member: Instance of 'FlexibleForeignKey' has no 'slug' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L75
  80. no-member: Instance of 'FlexibleForeignKey' has no 'get_email' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L77
  81. no-member: Instance of 'FlexibleForeignKey' has no 'role' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L87
  82. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L90
  83. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L103
  84. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L104
  85. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L105
  86. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L107
  87. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmemberteam.py#L109
  88. no-member: Instance of 'FlexibleForeignKey' has no 'id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/projectcodeowners.py#L123
  89. no-member: Instance of 'FlexibleForeignKey' has no 'type' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/identity.py#L216
  90. redefined-variable-type: Redefinition of qs type from sentry.db.models.manager.base_query_set.BaseQuerySet to django.db.models.query.QuerySet https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/projectkey.py#L61
  91. no-member: Instance of 'FlexibleForeignKey' has no 'organization_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/projectkey.py#L219
  92. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/projectkey.py#L223
  93. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/projectkey.py#L292
  94. no-member: Instance of 'FlexibleForeignKey' has no 'organization_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/projectkey.py#L304
  95. no-member: Instance of 'FlexibleForeignKey' has no 'issue_category' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/groupsnooze.py#L124
  96. no-member: Instance of 'FlexibleForeignKey' has no 'project' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/groupsnooze.py#L128
  97. no-member: Instance of 'FlexibleForeignKey' has no 'issue_category' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/groupsnooze.py#L185
  98. no-member: Instance of 'FlexibleForeignKey' has no 'project' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/groupsnooze.py#L189
  99. no-member: Instance of 'FlexibleForeignKey' has no 'absolute_url' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmember.py#L344
  100. no-member: Instance of 'FlexibleForeignKey' has no 'slug' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmember.py#L375
  101. no-member: Instance of 'FlexibleForeignKey' has no 'get_scopes' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmember.py#L508
  102. no-member: Instance of 'FlexibleForeignKey' has no 'get_option' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmember.py#L522
  103. no-member: Instance of 'FlexibleForeignKey' has no 'get_scopes' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmember.py#L610
  104. no-member: Instance of 'FlexibleForeignKey' has no 'get_members_with_org_roles' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationmember.py#L619
  105. no-member: Instance of 'FlexibleForeignKey' has no 'headers' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/debugfile.py#L151
  106. no-member: Instance of 'FlexibleForeignKey' has no 'delete' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/debugfile.py#L199
  107. no-member: Instance of 'FlexibleForeignKey' has no 'get_allowed_origins' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/apitoken.py#L281
  108. no-member: Instance of 'FlexibleForeignKey' has no 'id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/dynamicsampling.py#L256
  109. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationaccessrequest.py#L32
  110. no-member: Instance of 'FlexibleForeignKey' has no 'user_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationaccessrequest.py#L33
  111. no-member: Instance of 'FlexibleForeignKey' has no 'user_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationaccessrequest.py#L35
  112. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationaccessrequest.py#L71
  113. no-member: Instance of 'FlexibleForeignKey' has no 'user_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationaccessrequest.py#L81
  114. no-member: Instance of 'FlexibleForeignKey' has no 'organization' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/organizationaccessrequest.py#L83
  115. no-member: Instance of 'ManyToManyField' has no 'all' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/project.py#L452
  116. no-member: Instance of 'FlexibleForeignKey' has no 'update' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/activity.py#L174
  117. no-member: Instance of 'FlexibleForeignKey' has no 'update' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/activity.py#L187
  118. no-member: Instance of 'ManyToManyField' has no 'values_list' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/userrole.py#L48
  119. no-member: Instance of 'FlexibleForeignKey' has no 'email' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/authenticator.py#L195
  120. no-member: Instance of 'FlexibleForeignKey' has no 'application_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/integrations/sentry_app_installation.py#L175
  121. no-member: Instance of 'OneToOneField' has no 'outboxes_for_update' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/integrations/sentry_app_installation.py#L204
  122. no-member: Instance of 'OneToOneField' has no 'user_id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/integrations/sentry_app_installation.py#L234
  123. no-member: Instance of 'OneToOneField' has no 'client_secret' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/integrations/sentry_app.py#L215
  124. no-member: Instance of 'FlexibleForeignKey' has no 'id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/integrations/external_actor.py#L73
  125. no-member: Instance of 'FlexibleForeignKey' has no 'id' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/integrations/external_actor.py#L77
  126. no-member: Instance of 'FlexibleForeignKey' has no 'outboxes_for_update' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/integrations/sentry_app_installation_token.py#L81
  127. abstract-method: Method 'defer' is abstract in class 'BaseQuerySet' but is not overridden in child class 'ReleaseQuerySet' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/releases/util.py#L41
  128. abstract-method: Method 'only' is abstract in class 'BaseQuerySet' but is not overridden in child class 'ReleaseQuerySet' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/releases/util.py#L41
  129. no-member: Instance of 'QuerySet' has no 'annotate_prerelease_column' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/models/releases/util.py#L111
  130. no-member: Instance of 'FlexibleForeignKey' has no 'alertruletrigger_set' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/incidents/models/alert_rule_activations.py#L96
  131. no-member: Instance of 'FlexibleForeignKey' has no 'snuba_query' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/incidents/models/alert_rule_activations.py#L106
  132. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L11
  133. import-error: Unable to import 'django.contrib.auth.backends' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L12
  134. missing-function-docstring: Missing function or method docstring https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L414
  135. unused-argument: Unused argument 'request' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L415
  136. no-self-use: Method could be a function https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L414
  137. missing-function-docstring: Missing function or method docstring https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L433
  138. unused-argument: Unused argument 'user' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L433
  139. no-self-use: Method could be a function https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L433
  140. missing-function-docstring: Missing function or method docstring https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L436
  141. no-self-use: Method could be a function https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/utils/auth.py#L436
  142. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/auth/providers/saml2/provider.py#L5
  143. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0632_apitoken_backfill_last_chars.py#L5
  144. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0645_backfill_add_uuid_to_all_rule_actions.py#L7
  145. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0677_unpickle_project_options_again.py#L5
  146. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0711_backfill_group_attributes_to_self_hosted.py#L13
  147. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0680_unpickle_options_again.py#L5
  148. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0730_add_subscription_fk_to_incident.py#L8
  149. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0514_migrate_priority_saved_searches.py#L5
  150. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0670_monitor_incident_cleanup_duplicates.py#L5
  151. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0641_backfill_group_attributes.py#L11
  152. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0507_delete_pending_deletion_rules.py#L8
  153. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0492_pickle_to_json_sentry_groupedmessage.py#L6
  154. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0634_backfill_github_webhook_outbox_shard_ids.py#L8
  155. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0654_rename_priority_sort_to_trends.py#L5
  156. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0674_monitor_clear_missed_timeout_as_error.py#L5
  157. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0702_alert_rule_project_backfill_migration_2.py#L8
  158. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0528_truncate_flat_index.py#L5
  159. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0550_migrate_no_action_dupe_issue_alerts.py#L8
  160. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0546_backfill_fix_bad_xactors.py#L5
  161. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0566_remove_cron_missed_margins_zero.py#L5
  162. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0515_slugify_invalid_monitors.py#L8
  163. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0681_unpickle_authenticator_again.py#L5
  164. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0619_monitors_migrate_is_muted.py#L5
  165. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0537_backfill_xactor_team_and_user_ids.py#L5
  166. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0675_dashboard_widget_query_rename_priority_sort_to_trends.py#L5
  167. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0517_backfill_pagerdutyservices_into_org_integrations.py#L5
  168. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0522_migrate_discover_savedquery_worldmaps.py#L5
  169. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0644_backfill_priority_for_groups.py#L9
  170. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0587_remove_unused_neglectedrule_rows.py#L5
  171. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0493_pickle_to_json_sentry_activity.py#L6
  172. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0500_set_none_date_last_modified_to_date_uploaded.py#L5
  173. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0568_monitors_fix_next_checkin_latest.py#L7
  174. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0521_migrate_world_map_widgets.py#L5
  175. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0561_backfill_new_notification_tables.py#L9
  176. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0527_backfill_next_checkin_latest.py#L5
  177. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0502_savedsearch_update_me_myteams.py#L6
  178. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0672_backfill_ukraine_timezone_name.py#L5
  179. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0687_alert_rule_project_backfill_migration.py#L7
  180. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0660_fix_cron_monitor_invalid_orgs.py#L5
  181. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0739_backfill_group_info_to_group_attributes.py#L13
  182. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0565_fix_diff_env_dupe_alerts.py#L8
  183. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0538_remove_name_data_from_rule.py#L5
  184. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0726_apitoken_backfill_hashes.py#L9
  185. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0742_backfill_alertrule_detection_type.py#L5
  186. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0511_pickle_to_json_sentry_rawevent.py#L6
  187. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0574_backfill_weekly_report_settings.py#L5
  188. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0729_backfill_groupsearchviews_with_pinned_searches.py#L5
  189. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0621_set_muted_monitors_to_active.py#L5
  190. no-member: Instance of 'FlexibleForeignKey' has no 'aggregates' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/sentry_metrics/models/spanattributeextractionrules.py#L38
  191. no-name-in-module: No name 'executor' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/new_migrations/monkey/executor.py#L6
  192. no-name-in-module: No name 'fields' in module 'django.db.migrations.operations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/new_migrations/monkey/executor.py#L9
  193. no-name-in-module: No name 'state' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/new_migrations/monkey/executor.py#L11
  194. no-name-in-module: No name 'executor' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/new_migrations/monkey/init.py#L82
  195. no-name-in-module: No name 'writer' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/new_migrations/monkey/init.py#L82
  196. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/api/exceptions.py#L3
  197. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/api/endpoints/auth_config.py#L2
  198. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/api/endpoints/auth_index.py#L3
  199. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/api/endpoints/user_details.py#L6
  200. no-member: Instance of 'ManyToManyField' has no 'set' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/api/serializers/rest_framework/notification_action.py#L361
  201. import-error: Unable to import 'django.contrib.auth' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L26
  202. no-name-in-module: No name 'executor' in module 'django.db.migrations' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L31
  203. no-name-in-module: No name 'client' in module 'django.test' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L827
  204. too-many-ancestors: Too many ancestors (10/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2042
  205. no-member: Instance of 'MetricsEnhancedPerformanceTestCase' has no 'features' member; maybe 'feature'? https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2111
  206. no-member: Instance of 'MetricsEnhancedPerformanceTestCase' has no 'url' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2112
  207. too-many-ancestors: Too many ancestors (8/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2422
  208. no-member: Instance of 'ActivityTestCase' has no 'org' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2794
  209. no-member: Instance of 'ActivityTestCase' has no 'org' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2802
  210. no-member: Instance of 'ActivityTestCase' has no 'org' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2804
  211. no-member: Instance of 'ActivityTestCase' has no 'org' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2810
  212. no-member: Instance of 'ActivityTestCase' has no 'project2' member; maybe 'project'? https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2825
  213. no-member: Instance of 'ActivityTestCase' has no 'org' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2827
  214. too-many-ancestors: Too many ancestors (8/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L2839
  215. too-many-ancestors: Too many ancestors (8/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/cases.py#L3019
  216. too-many-ancestors: Too many ancestors (8/7) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/testutils/helpers/backups.py#L847

The following messages are no longer emitted:

  1. fixme: type: ignore[assignment] # XXX: clobbers Serializer.fields https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/discover/endpoints/serializers.py#L33
  2. fixme: type: ignore[assignment] # XXX: clobbers Serializer.fields https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/discover/endpoints/serializers.py#L156
  3. import-error: Unable to import 'django.db.models.deletion' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0516_switch_pagerduty_silo.py#L3
  4. no-name-in-module: No name 'deletion' in module 'django.db.models' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0516_switch_pagerduty_silo.py#L3
  5. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0516_switch_pagerduty_silo.py#L4
  6. no-member: Module 'django.db.models' has no 'deletion' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0516_switch_pagerduty_silo.py#L38
  7. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0516_switch_pagerduty_silo.py#L11
  8. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0694_db_index_alert_rule_actions.py#L3
  9. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0694_db_index_alert_rule_actions.py#L8
  10. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0565_fix_diff_env_dupe_alerts.py#L6
  11. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0565_fix_diff_env_dupe_alerts.py#L8
  12. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0565_fix_diff_env_dupe_alerts.py#L75
  13. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0498_typed_bitfield.py#L3
  14. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0498_typed_bitfield.py#L9
  15. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0525_add_next_checkin_latest.py#L3
  16. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0525_add_next_checkin_latest.py#L8
  17. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0529_remove_pagerduty_service.py#L3
  18. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0529_remove_pagerduty_service.py#L8
  19. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0609_remove_notification_setting_model.py#L3
  20. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0609_remove_notification_setting_model.py#L8
  21. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0487_add_indexes_to_bundles.py#L3
  22. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0487_add_indexes_to_bundles.py#L8
  23. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0724_discover_saved_query_dataset.py#L3
  24. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0724_discover_saved_query_dataset.py#L9
  25. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0674_monitor_clear_missed_timeout_as_error.py#L3
  26. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0674_monitor_clear_missed_timeout_as_error.py#L5
  27. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0674_monitor_clear_missed_timeout_as_error.py#L26
  28. import-error: Unable to import 'django.apps.registry' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0701_backfill_alertrule_user_team.py#L3
  29. no-name-in-module: No name 'apps' in module 'django' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0701_backfill_alertrule_user_team.py#L3
  30. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0701_backfill_alertrule_user_team.py#L4
  31. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0701_backfill_alertrule_user_team.py#L30
  32. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0671_enforce_unqiue_active_incidents.py#L3
  33. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0671_enforce_unqiue_active_incidents.py#L8
  34. import-error: Unable to import 'django.db.models.deletion' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0652_alert_rule_activation_condition.py#L3
  35. no-name-in-module: No name 'deletion' in module 'django.db.models' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0652_alert_rule_activation_condition.py#L3
  36. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0652_alert_rule_activation_condition.py#L5
  37. no-member: Module 'django.db.models' has no 'deletion' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0652_alert_rule_activation_condition.py#L45
  38. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0652_alert_rule_activation_condition.py#L12
  39. import-error: Unable to import 'django.apps.registry' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0706_grouphistory_userteam_backfill.py#L4
  40. no-name-in-module: No name 'apps' in module 'django' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0706_grouphistory_userteam_backfill.py#L4
  41. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0706_grouphistory_userteam_backfill.py#L5
  42. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0706_grouphistory_userteam_backfill.py#L34
  43. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0654_rename_priority_sort_to_trends.py#L3
  44. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0654_rename_priority_sort_to_trends.py#L5
  45. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0654_rename_priority_sort_to_trends.py#L23
  46. import-error: Unable to import 'django.db.models.deletion' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0690_remove_project_team_avatar.py#L3
  47. no-name-in-module: No name 'deletion' in module 'django.db.models' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0690_remove_project_team_avatar.py#L3
  48. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0690_remove_project_team_avatar.py#L4
  49. no-member: Module 'django.db.models' has no 'deletion' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0690_remove_project_team_avatar.py#L33
  50. no-member: Module 'django.db.models' has no 'deletion' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0690_remove_project_team_avatar.py#L44
  51. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0690_remove_project_team_avatar.py#L10
  52. import-error: Unable to import 'django.db.models.deletion' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0559_custom_dynamic_sampling_rule.py#L3
  53. no-name-in-module: No name 'deletion' in module 'django.db.models' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0559_custom_dynamic_sampling_rule.py#L3
  54. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0559_custom_dynamic_sampling_rule.py#L5
  55. no-member: Module 'django.db.models' has no 'deletion' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0559_custom_dynamic_sampling_rule.py#L52
  56. no-member: Module 'django.db.models' has no 'deletion' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0559_custom_dynamic_sampling_rule.py#L72
  57. no-member: Module 'django.db.models' has no 'deletion' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0559_custom_dynamic_sampling_rule.py#L79
  58. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0559_custom_dynamic_sampling_rule.py#L12
  59. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0742_backfill_alertrule_detection_type.py#L3
  60. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0742_backfill_alertrule_detection_type.py#L5
  61. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0742_backfill_alertrule_detection_type.py#L32
  62. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0645_backfill_add_uuid_to_all_rule_actions.py#L5
  63. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0645_backfill_add_uuid_to_all_rule_actions.py#L7
  64. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0645_backfill_add_uuid_to_all_rule_actions.py#L57
  65. import-error: Unable to import 'django.db.models.deletion' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0730_add_subscription_fk_to_incident.py#L5
  66. no-name-in-module: No name 'deletion' in module 'django.db.models' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0730_add_subscription_fk_to_incident.py#L5
  67. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0730_add_subscription_fk_to_incident.py#L6
  68. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0730_add_subscription_fk_to_incident.py#L8
  69. no-member: Module 'django.db.models' has no 'deletion' member https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0730_add_subscription_fk_to_incident.py#L73
  70. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0730_add_subscription_fk_to_incident.py#L48
  71. no-name-in-module: No name 'migrations' in module 'django.db' https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0610_remove_notification_setting_table.py#L3
  72. too-few-public-methods: Too few public methods (1/2) https://github.com/getsentry/sentry/blob/30e501a9b64dafdec9391605b193197b87321213/src/sentry/migrations/0610_remove_notification_setting_table.py#L8
  73. no-name-in-module: *No name 'mi...

This comment was truncated because GitHub allows only 65536 characters in a comment.

This comment was generated for commit d06c5622a9b9ffa6f977807c827b2c1eb027f551

github-actions[bot] avatar Jul 25 '24 05:07 github-actions[bot]

Could be false negatives, will look into this.

The primer tests still suffer from a fluctuating baseline, so you'll see unrelated messages moving in and out from time to time. We haven't yet identified the source of the indeterminacy. Surely it's a lack of a fixed ordering somewhere. Don't worry about it.

jacobtylerwalls avatar Jul 28 '24 15:07 jacobtylerwalls

FYI @badsketch, thanks to some ace detective work by @akamat10, the primer is more stable now, so if you merge main you should see a more informative primer diff.

jacobtylerwalls avatar Sep 29 '24 14:09 jacobtylerwalls

🤖 Effect of this PR on checked open source code: 🤖

Effect on astroid: The following messages are no longer emitted:

  1. fixme: # TODO: This should return an Uninferable as this would raise https://github.com/pylint-dev/astroid/blob/62c5badc838419090ee319acfcef3b651ffb1e94/astroid/brain/brain_dataclasses.py#L186

Effect on black: The following messages are no longer emitted:

  1. fixme: #assert ilabel not in first # XXX failed on <> ... != https://github.com/psf/black/blob/f1a2f92bba7f1b8e4407e89d71a18fd1d6c61a91/src/blib2to3/pgen2/pgen.py#L69

Effect on music21: The following messages are no longer emitted:

  1. fixme: # TODO: attach \noBeam to note if it is the last note https://github.com/cuthbertLab/music21/blob/e05fc53dfef7b2c9ac974c0cacb8b85e9c4d4605/music21/lily/translate.py#L1174
  2. fixme: # TODO: this file does not import correctly due to first/second https://github.com/cuthbertLab/music21/blob/e05fc53dfef7b2c9ac974c0cacb8b85e9c4d4605/music21/test/test_repeat.py#L475
  3. fixme: # TODO: Turn back on when a smaller work is found... https://github.com/cuthbertLab/music21/blob/e05fc53dfef7b2c9ac974c0cacb8b85e9c4d4605/music21/musedata/translate.py#L584
  4. fixme: # TODO: column 17 self.src[16] defines the graphic note type https://github.com/cuthbertLab/music21/blob/e05fc53dfef7b2c9ac974c0cacb8b85e9c4d4605/music21/musedata/init.py#L339
  5. fixme: # TODO: Something with 4.2 Repetitions; not in hum2xml https://github.com/cuthbertLab/music21/blob/e05fc53dfef7b2c9ac974c0cacb8b85e9c4d4605/music21/humdrum/spineParser.py#L2602
  6. fixme: # TODO: Find out what timeBase means; not in hum2xml https://github.com/cuthbertLab/music21/blob/e05fc53dfef7b2c9ac974c0cacb8b85e9c4d4605/music21/humdrum/spineParser.py#L2606
  7. fixme: # TODO: make staff numbers relevant; not in hum2xml https://github.com/cuthbertLab/music21/blob/e05fc53dfef7b2c9ac974c0cacb8b85e9c4d4605/music21/humdrum/spineParser.py#L2610
  8. fixme: # TODO: write https://github.com/cuthbertLab/music21/blob/e05fc53dfef7b2c9ac974c0cacb8b85e9c4d4605/music21/stream/base.py#L13037
  9. fixme: # TODO: write https://github.com/cuthbertLab/music21/blob/e05fc53dfef7b2c9ac974c0cacb8b85e9c4d4605/music21/stream/base.py#L13041
  10. fixme: # TODO: use the linter, reference DOESN'T have to be passed in https://github.com/cuthbertLab/music21/blob/e05fc53dfef7b2c9ac974c0cacb8b85e9c4d4605/music21/alpha/analysis/hasher.py#L485

Effect on pytest: The following messages are no longer emitted:

  1. fixme: path.strpath # XXX svn? https://github.com/pytest-dev/pytest/blob/6486c3f3a858a0c8043f5c3f7c24297b82a0abe4/src/_pytest/_py/path.py#L193
  2. fixme: # XXX https://github.com/pytest-dev/pytest/blob/6486c3f3a858a0c8043f5c3f7c24297b82a0abe4/src/_pytest/_code/code.py#L913

Effect on pandas: The following messages are no longer emitted:

  1. fixme: e.g. Sparse[bool, False] # TODO: no test cases get here https://github.com/pandas-dev/pandas/blob/d538a1cd1ad5d1e506c2dc36144e4cac5534858a/pandas/core/algorithms.py#L158

Effect on sentry: The following messages are no longer emitted:

  1. fixme: type: ignore[assignment] # XXX: intentional resetting pk https://github.com/getsentry/sentry/blob/6564a46b4e5cf2e447cd2bfb725fbc29c4c583c2/src/sentry/reprocessing2.py#L550
  2. fixme: type: ignore[assignment] # XXX: clobbers Serializer.fields https://github.com/getsentry/sentry/blob/6564a46b4e5cf2e447cd2bfb725fbc29c4c583c2/src/sentry/discover/endpoints/serializers.py#L34
  3. fixme: type: ignore[assignment] # XXX: clobbers Serializer.fields https://github.com/getsentry/sentry/blob/6564a46b4e5cf2e447cd2bfb725fbc29c4c583c2/src/sentry/discover/endpoints/serializers.py#L191
  4. fixme: type: ignore[assignment] # TODO: make BitField a mypy plugin https://github.com/getsentry/sentry/blob/6564a46b4e5cf2e447cd2bfb725fbc29c4c583c2/src/sentry/organizations/services/organization/impl.py#L502
  5. fixme: type: ignore[misc] # TODO: make BitField a mypy plugin https://github.com/getsentry/sentry/blob/6564a46b4e5cf2e447cd2bfb725fbc29c4c583c2/src/sentry/organizations/services/organization/impl.py#L545
  6. fixme: type: ignore[assignment] # XXX: clobbering Serializer.fields https://github.com/getsentry/sentry/blob/6564a46b4e5cf2e447cd2bfb725fbc29c4c583c2/src/sentry/api/serializers/rest_framework/dashboard.py#L146

This comment was generated for commit 51a2a1418da540a2bb36803da7e2d423780c0caf

github-actions[bot] avatar Sep 30 '24 04:09 github-actions[bot]

@jacobtylerwalls That's fantastic, appreciate the update! I merged from main and pushed just now.

As a refresher, since it's been a while, the performance profiling results are in this comment: https://github.com/pylint-dev/pylint/pull/9744#issuecomment-2249498558

Also, the latest primer diff above makes sense to me. Most of the instances are where a TODO is part of a section that has been commented out. It would make sense for those to no longer alert as a fixme. The other instances are where a TODO is behind another comment like "# some note # TODO: xyz", which I would also like to propose as an acceptable primer test output change for the sake of consistency. Let me know if there are any issues 👍

badsketch avatar Sep 30 '24 04:09 badsketch

@badsketch Sorry I didn't catch this before merge, but would you add a short breaking changes news fragment to indicate that we no longer emit fixme when contained in a commented out block? Thanks!

jacobtylerwalls avatar Sep 30 '24 14:09 jacobtylerwalls