Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

issue9255 - Detect FIXME words in docstring #9281

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

shenjunjie2003
Copy link

Type of Changes

Type
βœ“ πŸ› Bug fix
βœ“ ✨ New feature
βœ“ πŸ”¨ Refactoring
βœ“ πŸ“œ Docs

Description

Added checking in docstring. It checks for FIXME words (TODO, FIXME, XXX) in a docstring and give warnings.

Closes #9255

Copy link
Contributor

github-actions bot commented Dec 4, 2023

πŸ€– Effect of this PR on checked open source code: πŸ€–

Effect on astroid:
The following messages are now emitted:

  1. fixme-in-docstring:
    XXX
    https://github.com/pylint-dev/astroid/blob/06ee78b9c7d3fc38b36b90aea50fe40319d8d3f7/astroid/modutils.py#L391
  2. fixme-in-docstring:
    TODO
    https://github.com/pylint-dev/astroid/blob/06ee78b9c7d3fc38b36b90aea50fe40319d8d3f7/astroid/brain/brain_typing.py#L275
  3. fixme-in-docstring:
    TODO
    https://github.com/pylint-dev/astroid/blob/06ee78b9c7d3fc38b36b90aea50fe40319d8d3f7/astroid/nodes/_base_nodes.py#L351
  4. fixme-in-docstring:
    XXX
    https://github.com/pylint-dev/astroid/blob/06ee78b9c7d3fc38b36b90aea50fe40319d8d3f7/astroid/nodes/scoped_nodes/mixin.py#L75

Effect on music21:
The following messages are now emitted:

  1. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/base.py#L1079
  2. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/base.py#L2138
  3. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/base.py#L3056
  4. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/base.py#L3317
  5. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/base.py#L3371
  6. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/bar.py#L292
  7. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/instrument.py#L2095
  8. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/voiceLeading.py#L1235
  9. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/voiceLeading.py#L1292
  10. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/tablature.py#L1
  11. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/tablature.py#L290
  12. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/pitch.py#L1135
  13. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/interval.py#L1558
  14. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/interval.py#L3333
  15. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/repeat.py#L529
  16. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/repeat.py#L653
  17. fixme-in-docstring:
    XXX
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/layout.py#L1
  18. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/layout.py#L298
  19. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/layout.py#L502
  20. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/layout.py#L1118
  21. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/harmony.py#L2063
  22. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/duration.py#L955
  23. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/duration.py#L1217
  24. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/duration.py#L3217
  25. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/duration.py#L3762
  26. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/environment.py#L1
  27. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/sites.py#L327
  28. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/sites.py#L596
  29. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/expressions.py#L2482
  30. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/tree/timespanTree.py#L49
  31. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/tree/timespanTree.py#L681
  32. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/tree/timespanTree.py#L794
  33. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/tree/verticality.py#L1042
  34. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/tree/analysis.py#L78
  35. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/tree/spans.py#L452
  36. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/scale/intervalNetwork.py#L318
  37. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/scale/__init__.py#L2481
  38. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/chord/__init__.py#L2134
  39. fixme-in-docstring:
    XXX
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/common/numberTools.py#L968
  40. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/humdrum/spineParser.py#L871
  41. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/audioSearch/__init__.py#L297
  42. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/audioSearch/__init__.py#L345
  43. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/alpha/analysis/hasher.py#L163
  44. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/abcFormat/__init__.py#L3124
  45. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/braille/test.py#L1050
  46. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/braille/segment.py#L1584
  47. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/braille/runAllBrailleTests.py#L1
  48. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/lily/lilyObjects.py#L1465
  49. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/lily/lilyObjects.py#L1652
  50. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/lily/translate.py#L280
  51. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/lily/translate.py#L564
  52. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/corpus/manager.py#L209
  53. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/corpus/virtual.py#L1
  54. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/corpus/corpora.py#L118
  55. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/corpus/corpora.py#L884
  56. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/musedata/__init__.py#L1551
  57. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/metadata/caching.py#L81
  58. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/search/lyrics.py#L113
  59. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/graph/primitives.py#L289
  60. fixme-in-docstring:
    XXX
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/graph/axis.py#L189
  61. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/graph/axis.py#L459
  62. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/stream/base.py#L3733
  63. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/stream/base.py#L5261
  64. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/stream/base.py#L6091
  65. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/stream/base.py#L9052
  66. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/stream/base.py#L10166
  67. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/stream/base.py#L10280
  68. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/stream/base.py#L10840
  69. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/stream/base.py#L11123
  70. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/stream/base.py#L13783
  71. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/stream/makeNotation.py#L52
  72. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/stream/makeNotation.py#L1368
  73. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/stream/makeNotation.py#L1494
  74. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/midi/translate.py#L793
  75. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/midi/translate.py#L1109
  76. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/midi/translate.py#L2505
  77. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/analysis/floatingKey.py#L27
  78. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/meter/base.py#L1796
  79. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/native.py#L197
  80. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L2890
  81. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L2909
  82. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L2930
  83. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L2952
  84. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L3111
  85. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L3134
  86. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L3155
  87. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L3176
  88. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L3219
  89. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L3239
  90. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L3259
  91. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L3279
  92. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L3302
  93. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L3510
  94. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L3539
  95. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L3622
  96. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L3691
  97. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L3736
  98. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L3910
  99. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/features/jSymbolic.py#L3941
  100. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/musicxml/xmlToM21.py#L2890
  101. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/musicxml/xmlToM21.py#L5008
  102. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/musicxml/xmlToM21.py#L5477
  103. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/musicxml/m21ToXml.py#L3868
  104. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/musicxml/m21ToXml.py#L5062
  105. fixme-in-docstring:
    TODO
    https://github.com/cuthbertLab/music21/blob/a938a8c8c74f21ceec5a99a1998d96c00d5f77e9/music21/capella/fromCapellaXML.py#L269

Effect on pandas:
The following messages are now emitted:

  1. fixme-in-docstring:
    TODO
    https://github.com/pandas-dev/pandas/blob/3934e56f5d402f1ebf28ff89db02ce718e30cc8e/pandas/tests/indexing/test_partial.py#L1
  2. fixme-in-docstring:
    TODO
    https://github.com/pandas-dev/pandas/blob/3934e56f5d402f1ebf28ff89db02ce718e30cc8e/pandas/tests/extension/conftest.py#L122

Effect on sentry:
The following messages are now emitted:

  1. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/models/integrations/project_integration.py#L8
  2. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/ownership/grammar.py#L93
  3. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/mail/adapter.py#L34
  4. fixme-in-docstring:
    XXX
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/plugins/bases/issue2.py#L167
  5. fixme-in-docstring:
    XXX
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/plugins/bases/issue.py#L139
  6. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/web/frontend/auth_login.py#L519
  7. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/web/frontend/auth_login.py#L558
  8. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/integrations/jira/integration.py#L599
  9. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/integrations/vsts/repository.py#L96
  10. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/integrations/vsts/integration.py#L538
  11. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/integrations/slack/message_builder/notifications/__init__.py#L8
  12. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/integrations/slack/views/__init__.py#L14
  13. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/integrations/slack/views/__init__.py#L20
  14. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/integrations/slack/requests/base.py#L23
  15. fixme-in-docstring:
    XXX
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/integrations/github/webhook.py#L152
  16. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/integrations/github/webhook.py#L548
  17. fixme-in-docstring:
    XXX
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/integrations/jira_server/client.py#L147
  18. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/integrations/jira_server/integration.py#L688
  19. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/api/endpoints/release_thresholds/release_threshold_status_index.py#L102
  20. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/api/endpoints/release_thresholds/release_threshold_status_index.py#L357
  21. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/api/serializers/models/organization_member/base.py#L48
  22. fixme-in-docstring:
    XXX
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/auth/helper.py#L486
  23. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/rules/actions/integrations/create_ticket/utils.py#L22
  24. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/notifications/manager.py#L48
  25. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/notifications/helpers.py#L355
  26. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/notifications/utils/participants.py#L525
  27. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/features/manager.py#L35
  28. fixme-in-docstring:
    TODO
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/features/manager.py#L192
  29. fixme-in-docstring:
    XXX
    https://github.com/getsentry/sentry/blob/ee50b84f0d86c023f54b892f04ceb851872e8a48/src/sentry/utils/redis.py#L317

This comment was generated for commit 73d15fa

Copy link
Collaborator

@DanielNoord DanielNoord left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks really good already!

You'll also need to add a documentation example. There is a CI check that sort of tells you what's wrong. Please let us know if you need more help figuring out what to do: that means we should update the error message of that CI step.

@@ -73,6 +73,11 @@ class DocStringChecker(_BasicChecker):
"docstring.",
{"old_names": [("C0111", "missing-docstring")]},
),
"C0150": (
"%s",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we make this message a little more descriptive? Something like:

Suggested change
"%s",
"Disallowed word in docstring: '%s'",

I know the original fixme message doesn't have this but I don't think that's nice πŸ˜„

Comment on lines +215 to +216
fixme_words = self.linter.config.notes
for word in fixme_words:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
fixme_words = self.linter.config.notes
for word in fixme_words:
for word in self.linter.config.notes:

Comment on lines +1 to +5
# pylint: disable=unnecessary-pass, consider-using-f-string

"""
Test fixme in docstrings.
"""
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you switch the comment and the docstring around?

# fixme-in-docstring
def func3(): # [fixme-in-docstring]
"""
XXX: Implement
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you add a test where the FIXME is not the first word of the line? And also one where it is not surrounded by spaces?

Copy link
Member

@Pierre-Sassoulas Pierre-Sassoulas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it's a new check, we might want to disable it by default. Not sure it warrant to create a new message by the way. If we extends fixme then adding an option to raise on docstring (false by default) would be nice. What do you think @DanielNoord ?

@@ -73,6 +73,11 @@ class DocStringChecker(_BasicChecker):
"docstring.",
{"old_names": [("C0111", "missing-docstring")]},
),
"C0150": (
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would expect this message to be in the same checker than fixme. Maybe even the same message.

"C0150": (
"%s",
"fixme-in-docstring",
"Used when a warning note as FIXME or XXX is detected in docstring.",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Imo should be a rational (why it's bad) and not when it's raised. (I know the current descriptions are a bad example of that.)

@DanielNoord
Copy link
Collaborator

If it's a new check, we might want to disable it by default. Not sure it warrant to create a new message by the way. If we extends fixme then adding an option to raise on docstring (false by default) would be nice. What do you think @DanielNoord ?

I'm fine with adding it to fixme as well

@shenjunjie2003
Copy link
Author

Ok! Should I change to integrate it to fixme ?

@Pierre-Sassoulas
Copy link
Member

Yes, I think pylint would be more consistent if it's still a fixme message but with a check-fixme-in-docstring option (default to false). Here's an example of options in a checker:

options = (
(
"max-args",
{
"default": 5,
"type": "int",
"metavar": "<int>",
"help": "Maximum number of arguments for function / method.",
},
),
(
"max-locals",
{
"default": 15,
"type": "int",
"metavar": "<int>",
"help": "Maximum number of locals for function / method body.",
},
),
(
"max-returns",
{
"default": 6,
"type": "int",
"metavar": "<int>",
"help": "Maximum number of return / yield for function / "
"method body.",
},
),
(
"max-branches",
{
"default": 12,
"type": "int",
"metavar": "<int>",
"help": "Maximum number of branch for function / method body.",
},
),
(
"max-statements",
{
"default": 50,
"type": "int",
"metavar": "<int>",
"help": "Maximum number of statements in function / method body.",
},
),
(
"max-parents",
{
"default": 7,
"type": "int",
"metavar": "<num>",
"help": "Maximum number of parents for a class (see R0901).",
},
),
(
"ignored-parents",
{
"default": (),
"type": "csv",
"metavar": "<comma separated list of class names>",
"help": "List of qualified class names to ignore when counting class parents (see R0901)",
},
),
(
"max-attributes",
{
"default": 7,
"type": "int",
"metavar": "<num>",
"help": "Maximum number of attributes for a class \
(see R0902).",
},
),
(
"min-public-methods",
{
"default": 2,
"type": "int",
"metavar": "<num>",
"help": "Minimum number of public methods for a class \
(see R0903).",
},
),
(
"max-public-methods",
{
"default": 20,
"type": "int",
"metavar": "<num>",
"help": "Maximum number of public methods for a class \
(see R0904).",
},
),
(
"max-bool-expr",
{
"default": 5,
"type": "int",
"metavar": "<num>",
"help": "Maximum number of boolean expressions in an if "
"statement (see R0916).",
},
),
(
"exclude-too-few-public-methods",
{
"default": [],
"type": "regexp_csv",
"metavar": "<pattern>[,<pattern>...]",
"help": "List of regular expressions of class ancestor names "
"to ignore when counting public methods (see R0903)",
},
),
)

@Pierre-Sassoulas Pierre-Sassoulas added Enhancement ✨ Improvement to a component Waiting on author Indicate that maintainers are waiting for a message of the author labels Apr 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement ✨ Improvement to a component Waiting on author Indicate that maintainers are waiting for a message of the author
Projects
None yet
Development

Successfully merging this pull request may close these issues.

W0511: Doesn't detect TODO in docstrings
3 participants