prospector 1.15.1__tar.gz → 1.15.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. {prospector-1.15.1 → prospector-1.15.3}/PKG-INFO +1 -1
  2. {prospector-1.15.1 → prospector-1.15.3}/prospector/blender_combinations.yaml +78 -7
  3. {prospector-1.15.1 → prospector-1.15.3}/pyproject.toml +1 -1
  4. {prospector-1.15.1 → prospector-1.15.3}/setup.py +1 -1
  5. {prospector-1.15.1 → prospector-1.15.3}/LICENSE +0 -0
  6. {prospector-1.15.1 → prospector-1.15.3}/README.rst +0 -0
  7. {prospector-1.15.1 → prospector-1.15.3}/prospector/__init__.py +0 -0
  8. {prospector-1.15.1 → prospector-1.15.3}/prospector/__main__.py +0 -0
  9. {prospector-1.15.1 → prospector-1.15.3}/prospector/autodetect.py +0 -0
  10. {prospector-1.15.1 → prospector-1.15.3}/prospector/blender.py +0 -0
  11. {prospector-1.15.1 → prospector-1.15.3}/prospector/compat.py +0 -0
  12. {prospector-1.15.1 → prospector-1.15.3}/prospector/config/__init__.py +0 -0
  13. {prospector-1.15.1 → prospector-1.15.3}/prospector/config/configuration.py +0 -0
  14. {prospector-1.15.1 → prospector-1.15.3}/prospector/config/datatype.py +0 -0
  15. {prospector-1.15.1 → prospector-1.15.3}/prospector/encoding.py +0 -0
  16. {prospector-1.15.1 → prospector-1.15.3}/prospector/exceptions.py +0 -0
  17. {prospector-1.15.1 → prospector-1.15.3}/prospector/finder.py +0 -0
  18. {prospector-1.15.1 → prospector-1.15.3}/prospector/formatters/__init__.py +0 -0
  19. {prospector-1.15.1 → prospector-1.15.3}/prospector/formatters/base.py +0 -0
  20. {prospector-1.15.1 → prospector-1.15.3}/prospector/formatters/base_summary.py +0 -0
  21. {prospector-1.15.1 → prospector-1.15.3}/prospector/formatters/emacs.py +0 -0
  22. {prospector-1.15.1 → prospector-1.15.3}/prospector/formatters/grouped.py +0 -0
  23. {prospector-1.15.1 → prospector-1.15.3}/prospector/formatters/json.py +0 -0
  24. {prospector-1.15.1 → prospector-1.15.3}/prospector/formatters/pylint.py +0 -0
  25. {prospector-1.15.1 → prospector-1.15.3}/prospector/formatters/pylint_parseable.py +0 -0
  26. {prospector-1.15.1 → prospector-1.15.3}/prospector/formatters/text.py +0 -0
  27. {prospector-1.15.1 → prospector-1.15.3}/prospector/formatters/vscode.py +0 -0
  28. {prospector-1.15.1 → prospector-1.15.3}/prospector/formatters/xunit.py +0 -0
  29. {prospector-1.15.1 → prospector-1.15.3}/prospector/formatters/yaml.py +0 -0
  30. {prospector-1.15.1 → prospector-1.15.3}/prospector/message.py +0 -0
  31. {prospector-1.15.1 → prospector-1.15.3}/prospector/pathutils.py +0 -0
  32. {prospector-1.15.1 → prospector-1.15.3}/prospector/postfilter.py +0 -0
  33. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/__init__.py +0 -0
  34. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/exceptions.py +0 -0
  35. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profile.py +0 -0
  36. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profiles/default.yaml +0 -0
  37. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profiles/doc_warnings.yaml +0 -0
  38. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profiles/flake8.yaml +0 -0
  39. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profiles/full_pep8.yaml +0 -0
  40. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profiles/member_warnings.yaml +0 -0
  41. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profiles/no_doc_warnings.yaml +0 -0
  42. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profiles/no_member_warnings.yaml +0 -0
  43. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profiles/no_pep8.yaml +0 -0
  44. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profiles/no_test_warnings.yaml +0 -0
  45. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profiles/strictness_high.yaml +0 -0
  46. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profiles/strictness_low.yaml +0 -0
  47. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profiles/strictness_medium.yaml +0 -0
  48. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profiles/strictness_none.yaml +0 -0
  49. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profiles/strictness_veryhigh.yaml +0 -0
  50. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profiles/strictness_verylow.yaml +0 -0
  51. {prospector-1.15.1 → prospector-1.15.3}/prospector/profiles/profiles/test_warnings.yaml +0 -0
  52. {prospector-1.15.1 → prospector-1.15.3}/prospector/run.py +0 -0
  53. {prospector-1.15.1 → prospector-1.15.3}/prospector/suppression.py +0 -0
  54. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/__init__.py +0 -0
  55. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/bandit/__init__.py +0 -0
  56. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/base.py +0 -0
  57. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/dodgy/__init__.py +0 -0
  58. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/exceptions.py +0 -0
  59. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/mccabe/__init__.py +0 -0
  60. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/mypy/__init__.py +0 -0
  61. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/profile_validator/__init__.py +0 -0
  62. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/pycodestyle/__init__.py +0 -0
  63. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/pydocstyle/__init__.py +0 -0
  64. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/pyflakes/__init__.py +0 -0
  65. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/pylint/__init__.py +0 -0
  66. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/pylint/collector.py +0 -0
  67. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/pylint/linter.py +0 -0
  68. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/pyright/__init__.py +0 -0
  69. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/pyroma/__init__.py +0 -0
  70. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/ruff/__init__.py +0 -0
  71. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/utils.py +0 -0
  72. {prospector-1.15.1 → prospector-1.15.3}/prospector/tools/vulture/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prospector
3
- Version: 1.15.1
3
+ Version: 1.15.3
4
4
  Summary: Prospector is a tool to analyse Python code by aggregating the result of other tools.
5
5
  Home-page: http://prospector.readthedocs.io
6
6
  License: GPLv2+
@@ -8,6 +8,7 @@
8
8
  combinations:
9
9
  - # Unused Import
10
10
  - pylint: unused-import
11
+ - pylint: W0611
11
12
  - pyflakes: F401
12
13
  - frosted: E101
13
14
  - ruff: F401
@@ -15,6 +16,7 @@ combinations:
15
16
  - # Syntax Error
16
17
  - dodgy: diff
17
18
  - pylint: syntax-error
19
+ - pylint: E0001
18
20
  - pyflakes: F999
19
21
  - pep8: E901
20
22
  # expected an indented block
@@ -26,6 +28,7 @@ combinations:
26
28
 
27
29
  - # Undefined local variable
28
30
  - pylint: undefined-variable
31
+ - pylint: E0602
29
32
  - pyflakes: F821
30
33
  - frosted: E303
31
34
  - ruff: F821
@@ -33,6 +36,7 @@ combinations:
33
36
 
34
37
  - # Unused variable
35
38
  - pylint: unused-variable
39
+ - pylint: W0612
36
40
  - vulture: unused-variable
37
41
  - pyflakes: F841
38
42
  - frosted: E307
@@ -48,6 +52,7 @@ combinations:
48
52
 
49
53
  - # Import from __future__ not first import
50
54
  - pylint: misplaced-future
55
+ - pylint: W0410
51
56
  - pyflakes: F404
52
57
  - frosted: E207
53
58
  - ruff: F404
@@ -56,36 +61,43 @@ combinations:
56
61
  - pep8: E501
57
62
  - pycodestyle: E501
58
63
  - pylint: line-too-long
64
+ - pylint: C0301
59
65
 
60
66
  - # Trailing whitespace
61
67
  - pep8: W291
62
68
  - pycodestyle: W291
63
69
  - pylint: trailing-whitespace
70
+ - pylint: C0303
64
71
 
65
72
  - # Blank line contains whitespace
66
73
  - pep8: W293
67
74
  - pycodestyle: W293
68
75
  - pylint: trailing-whitespace
76
+ - pylint: C0303
69
77
 
70
78
  - # No newline at end of file
71
79
  - pep8: W292
72
80
  - pycodestyle: W292
73
81
  - pylint: missing-final-newline
82
+ - pylint: C0304
74
83
 
75
84
  - # line ends with semi-colon
76
85
  - pep8: E703
77
86
  - pycodestyle: E703
78
87
  - pylint: unnecessary-semicolon
88
+ - pylint: W0301
79
89
 
80
90
  - # multiple statements on one line (colon)
81
91
  - pep8: E701
82
92
  - pycodestyle: E701
83
93
  - pylint: multiple-statements
94
+ - pylint: C0321
84
95
 
85
96
  - # multiple statements on one line (semicolon)
86
97
  - pep8: E702
87
98
  - pycodestyle: E702
88
99
  - pylint: multiple-statements
100
+ - pylint: C0321
89
101
 
90
102
  - # incorrect indentation
91
103
  - pep257: D207
@@ -93,6 +105,7 @@ combinations:
93
105
  - pep8: E111
94
106
  - pycodestyle: E111
95
107
  - pylint: bad-indentation
108
+ - pylint: W0311
96
109
  - ruff: D207
97
110
 
98
111
  - # incorrect indentation
@@ -101,6 +114,7 @@ combinations:
101
114
  - pep8: E111
102
115
  - pycodestyle: E111
103
116
  - pylint: bad-indentation
117
+ - pylint: W0311
104
118
  - ruff: D208
105
119
 
106
120
  - # comma not followed by a space
@@ -123,12 +137,14 @@ combinations:
123
137
 
124
138
  - # undefined name in __all__
125
139
  - pylint: undefined-all-variable
140
+ - pylint: E0603
126
141
  - pyflakes: F822
127
142
  - frosted: E304
128
143
  - ruff: F822
129
144
 
130
145
  - # duplicate argument in function definition
131
146
  - pylint: duplicate-argument-name
147
+ - pylint: E0108
132
148
  - pyflakes: F831
133
149
  - frosted: E206
134
150
  - ruff: F831
@@ -136,35 +152,42 @@ combinations:
136
152
  - # redefinition of unused function
137
153
  - pyflakes: F811
138
154
  - pylint: function-redefined
155
+ - pylint: E0102
139
156
  - ruff: F811
140
157
 
141
158
  - # f-string is missing placeholders
142
159
  - pylint: f-string-without-interpolation
160
+ - pylint: W1309
143
161
  - pyflakes: F541
144
162
  - ruff: F541
145
163
 
146
164
  - # Duplicate key in dictionary
147
165
  - pylint: duplicate-key
166
+ - pylint: W0109
148
167
  - pyflakes: F601
149
168
  - ruff: F601
150
169
 
151
170
  - # More than one starred expression in assignment
152
171
  - pylint: too-many-star-expressions
172
+ - pylint: E0112
153
173
  - pyflakes: F622
154
174
  - ruff: F622
155
175
 
156
176
  - # Assert called on a tuple
157
177
  - pylint: assert-on-tuple
178
+ - pylint: W0199
158
179
  - pyflakes: F631
159
180
  - ruff: F631
160
181
 
161
182
  - # 'break' outside loop
162
183
  - pylint: not-in-loop
184
+ - pylint: E0103
163
185
  - pyflakes: F701
164
186
  - ruff: F701
165
187
 
166
188
  - # 'continue' not properly in loop
167
189
  - pylint: not-in-loop
190
+ - pylint: E0103
168
191
  - pyflakes: F702
169
192
  - ruff: F702
170
193
 
@@ -177,21 +200,25 @@ combinations:
177
200
 
178
201
  - # Yield outside function
179
202
  - pylint: yield-outside-function
203
+ - pylint: E0105
180
204
  - pyflakes: F704
181
205
  - ruff: F704
182
206
 
183
207
  - # Return outside function
184
208
  - pylint: return-outside-function
209
+ - pylint: E0104
185
210
  - pyflakes: F706
186
211
  - ruff: F706
187
212
 
188
213
  - # default 'except:' must be last
189
214
  - pylint: bad-except-order
215
+ - pylint: E0701
190
216
  - pyflakes: F707
191
217
  - ruff: F707
192
218
 
193
219
  - # NotImplemented raised - should raise NotImplementedError
194
220
  - pylint: notimplemented-raised
221
+ - pylint: E0711
195
222
  - pyflakes: F901
196
223
  - ruff: F901
197
224
 
@@ -199,6 +226,8 @@ combinations:
199
226
  - pep8: N804
200
227
  - pycodestyle: N804
201
228
  - pylint: bad-classmethod-argument
229
+ - pylint: C0202
230
+ - ruff: N804
202
231
 
203
232
  - # '<>' is deprecated, use '!='
204
233
  - pep8: W603
@@ -212,38 +241,46 @@ combinations:
212
241
 
213
242
  - # Redefining name from outer scope
214
243
  - pylint: redefined-outer-name
244
+ - pylint: W0621
215
245
  - pyflakes: F810
216
246
  - frosted: E306
217
247
  - ruff: F810
218
248
 
219
249
  - # Redefinition of unused variable
220
250
  - pylint: redefined-outer-name
251
+ - pylint: W0621
221
252
  - pyflakes: F811
222
253
 
223
254
  - # Wildcard import
224
255
  - pylint: wildcard-import
256
+ - pylint: W0614
225
257
  - pyflakes: F403
226
258
  - frosted: E103
227
259
  - ruff: F403
228
260
 
229
261
  - # Return with argument inside generator
230
262
  - pylint: return-arg-in-generator
263
+ - pylint: E0110
231
264
  - frosted: E208
232
265
 
233
266
  - # Too many positional arguments for function call
234
267
  - pylint: too-many-function-args
268
+ - pylint: E1121
235
269
  - frosted: E203
236
270
 
237
271
  - # Passing unexpected keyword argument
238
272
  - pylint: unexpected-keyword-arg
273
+ - pylint: E1123
239
274
  - frosted: E204
240
275
 
241
276
  - # Missing mandatory keyword argument
242
277
  - pylint: missing-kwoa
278
+ - pylint: E1125
243
279
  - frosted: E205
244
280
 
245
281
  - # No exception type(s) specified
246
282
  - pylint: bare-except
283
+ - pylint: W0702
247
284
  - frosted: W101
248
285
  - pep8: E722
249
286
  - pycodestyle: E722
@@ -254,6 +291,7 @@ combinations:
254
291
 
255
292
  - # No exception type(s) specified
256
293
  - pylint: bare-except
294
+ - pylint: W0702
257
295
  - frosted: W101
258
296
  - pep8: E722
259
297
  - pycodestyle: E722
@@ -264,10 +302,17 @@ combinations:
264
302
 
265
303
  - # Do not catch blind exception: `Exception`
266
304
  - pylint: broad-exception-caught
305
+ - pylint: W0718
267
306
  - ruff: BLE001
268
307
 
308
+ - # Do not catch blind exception: `BaseException`
309
+ - pylint: broad-except
310
+ - pylint: W0703
311
+ - ruff: BLE002
312
+
269
313
  - # Create your own exception
270
314
  - pylint: broad-exception-raised
315
+ - pylint: W0719
271
316
  - ruff: TRY002
272
317
 
273
318
  - # Spaces around keyword/parameter equals
@@ -307,6 +352,7 @@ combinations:
307
352
 
308
353
  - # pep8-naming incorrectly suggests that the first argument of a metaclass __new__ method should be 'cls'
309
354
  - pylint: bad-mcs-classmethod-argument
355
+ - pylint: C0204
310
356
  - pep8: N804
311
357
  - pycodestyle: N804
312
358
 
@@ -314,21 +360,28 @@ combinations:
314
360
  - pep8: N801
315
361
  - pycodestyle: N801
316
362
  - pylint: invalid-name
363
+ - pylint: C0103
317
364
 
318
- # function name should be lowercase
319
- - - pylint: invalid-name
365
+ - # function name should be lowercase
366
+ - pylint: invalid-name
367
+ - pylint: C0103
320
368
  - pep8: N802
321
369
  - pycodestyle: N802
370
+ - ruff: N802
322
371
 
323
- # argument name should be lowercase
324
- - - pylint: invalid-name
372
+ - # argument name should be lowercase
373
+ - pylint: invalid-name
374
+ - pylint: C0103
325
375
  - pep8: N803
326
376
  - pycodestyle: N803
377
+ - ruff: N803
327
378
 
328
- # Variable in function should be lowercase
329
- - - pylint: invalid-name
379
+ - # Variable in function should be lowercase
380
+ - pylint: invalid-name
381
+ - pylint: C0103
330
382
  - pep8: N806
331
383
  - pycodestyle: N806
384
+ - ruff: N806
332
385
 
333
386
  # too complex
334
387
  - # Too many branches ({branches} > {max_branches})
@@ -340,42 +393,52 @@ combinations:
340
393
  - pylint: too-many-statements
341
394
  - pylint: R0915
342
395
  - mccabe: MC0001
343
- - pylint: too-many-statements
344
396
  - ruff: PLR0915
345
397
 
346
398
  - # pep257 takes preference over pylint documentation warnings
347
399
  - pep257: D100
348
400
  - pydocstyle: D100
349
401
  - pylint: missing-docstring
402
+ - pylint: C0111
350
403
  - ruff: D100
351
404
 
352
405
  - # Missing docstring in public class
353
406
  - pep257: D101
354
407
  - pydocstyle: D101
355
408
  - pylint: missing-docstring
409
+ - pylint: C0111
356
410
  - ruff: D101
357
411
 
358
412
  - # Missing docstring in public method
359
413
  - pep257: D102
360
414
  - pydocstyle: D102
361
415
  - pylint: missing-docstring
416
+ - pylint: C0111
362
417
  - ruff: D102
363
418
 
364
419
  - # Missing docstring in public function
365
420
  - pep257: D103
366
421
  - pydocstyle: D103
367
422
  - pylint: missing-docstring
423
+ - pylint: C0111
368
424
  - ruff: D103
369
425
 
370
426
  - - pylint: singleton-comparison
427
+ - pylint: C0221
371
428
  - pep8: E711
372
429
  - pycodestyle: E711
373
430
 
374
431
  - - pylint: subprocess-run-check
432
+ - pylint: W1510
375
433
  - bandit: B603
376
434
  - ruff: S603
377
435
  - ruff: PLW1510
378
436
 
437
+ - # Private member accessed:
438
+ - pylint: protected-access
439
+ - pylint: W0212
440
+ - ruff: SLF001
441
+
379
442
  # assert_used
380
443
  - - ruff: S101
381
444
  - bandit: B101
@@ -410,6 +473,7 @@ combinations:
410
473
 
411
474
  # request_without_timeout
412
475
  - - pylint: missing-timeout
476
+ - pylint: W3101
413
477
  - ruff: S113
414
478
  - bandit: B113
415
479
 
@@ -520,11 +584,13 @@ combinations:
520
584
  # Within an `except` clause, raise exceptions with `raise ... from err` or `raise ... from None` to distinguish them from errors in exception handling
521
585
  # See: https://docs.astral.sh/ruff/rules/raise-without-from-inside-except
522
586
  - - pylint: raise-missing-from
587
+ - pylint: W0707
523
588
  - ruff: B904
524
589
 
525
590
  # Use of possibly insecure function - consider using safer ast.literal_eval
526
591
  # See: https://docs.astral.sh/ruff/rules/suspicious-eval-usage
527
592
  - - pylint: eval-used
593
+ - pylint: W0123
528
594
  - bandit: B307
529
595
  - ruff: S307
530
596
 
@@ -1073,6 +1139,11 @@ combinations:
1073
1139
  - pylint: W3301
1074
1140
  - ruff: PLW3301
1075
1141
 
1142
+ - # Consider using 'with' for resource-allocating operations
1143
+ - pylint: consider-using-with
1144
+ - pylint: R1732
1145
+ - ruff: SIM115
1146
+
1076
1147
  - # Missing docstring in public package
1077
1148
  - ruff: D104
1078
1149
  - pycodestyle: D104
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "prospector"
3
- version = "1.15.1"
3
+ version = "1.15.3"
4
4
  description = "Prospector is a tool to analyse Python code by aggregating the result of other tools."
5
5
  authors = ["Carl Crowder <git@carlcrowder.com>"]
6
6
  maintainers = ["Carl Crowder <git@carlcrowder.com>",
@@ -61,7 +61,7 @@ entry_points = \
61
61
 
62
62
  setup_kwargs = {
63
63
  'name': 'prospector',
64
- 'version': '1.15.1',
64
+ 'version': '1.15.3',
65
65
  'description': 'Prospector is a tool to analyse Python code by aggregating the result of other tools.',
66
66
  'long_description': 'prospector\n==========\n\n.. image:: https://img.shields.io/pypi/v/prospector.svg\n :target: https://pypi.python.org/pypi/prospector\n :alt: Latest Version of Prospector\n.. image:: https://github.com/PyCQA/prospector/actions/workflows/tests.yml/badge.svg\n :target: https://github.com/PyCQA/prospector/actions/workflows/tests.yml\n :alt: Build Status\n.. image:: https://img.shields.io/coveralls/PyCQA/prospector.svg?style=flat\n :target: https://coveralls.io/r/PyCQA/prospector\n :alt: Test Coverage\n.. image:: https://readthedocs.org/projects/prospector/badge/?version=latest\n :target: https://prospector.readthedocs.io/\n :alt: Documentation\n\n\nAbout\n-----\n\nProspector is a tool to analyse Python code and output information about\nerrors, potential problems, convention violations and complexity.\n\nIt brings together the functionality of other Python analysis tools such as\n`Pylint <https://docs.pylint.org/>`_,\n`pycodestyle <https://pycodestyle.pycqa.org/>`_,\nand `McCabe complexity <https://pypi.python.org/pypi/mccabe>`_.\nSee the `Supported Tools <https://prospector.readthedocs.io/en/latest/supported_tools.html>`_\ndocumentation section for a complete list.\n\nThe primary aim of Prospector is to be useful \'out of the box\'. A common complaint of other\nPython analysis tools is that it takes a long time to filter through which errors are relevant\nor interesting to your own coding style. Prospector provides some default profiles, which\nhopefully will provide a good starting point and will be useful straight away, and adapts\nthe output depending on the libraries your project uses.\n\nInstallation\n------------\n\nProspector can be installed from PyPI using ``pip`` by running the following command::\n\n pip install prospector\n\nOptional dependencies for Prospector, such as ``pyroma`` can also be installed by running::\n\n pip install prospector[with_pyroma]\n\nSome shells (such as ``Zsh``, the default shell of macOS Catalina) require brackets to be escaped::\n\n pip install prospector\\[with_pyroma\\]\n\nFor a list of all of the optional dependencies, see the optional extras section on the ReadTheDocs\npage on `Supported Tools Extras <https://prospector.readthedocs.io/en/latest/supported_tools.html#optional-extras>`_.\n\nFor local development, `poetry <https://python-poetry.org/>`_ is used. Check out the code, then run::\n\n poetry install\n\nAnd for extras::\n\n poetry install -E with_everything\n\nFor more detailed information on installing the tool, see the\n`installation section <https://prospector.readthedocs.io/en/latest/#installation>`_ of the tool\'s main page\non ReadTheDocs.\n\nDocumentation\n-------------\n\nFull `documentation is available at ReadTheDocs <https://prospector.readthedocs.io>`_.\n\nUsage\n-----\n\nSimply run prospector from the root of your project::\n\n prospector\n\nThis will output a list of messages pointing out potential problems or errors, for example::\n\n prospector.tools.base (prospector/tools/base.py):\n L5:0 ToolBase: pylint - R0922\n Abstract class is only referenced 1 times\n\nOptions\n```````\n\nRun ``prospector --help`` for a full list of options and their effects.\n\nOutput Format\n~~~~~~~~~~~~~\n\nThe default output format of ``prospector`` is designed to be human readable. For parsing\n(for example, for reporting), you can use the ``--output-format json`` flag to get JSON-formatted\noutput.\n\nProfiles\n~~~~~~~~\n\nProspector is configurable using "profiles". These are composable YAML files with directives to\ndisable or enable tools or messages. For more information, read\n`the documentation about profiles <https://prospector.readthedocs.io/en/latest/profiles.html>`_.\n\nIf your code uses frameworks and libraries\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOften tools such as pylint find errors in code which is not an error, for example due to attributes of classes being\ncreated at run time by a library or framework used by your project.\nFor example, by default, pylint will generate an error for Django models when accessing ``objects``, as the\n``objects`` attribute is not part of the ``Model`` class definition.\n\nProspector mitigates this by providing an understanding of these frameworks to the underlying tools.\n\nProspector will try to intuit which libraries your project uses by\n`detecting dependencies <https://github.com/landscapeio/requirements-detector>`_ and automatically turning on\nsupport for the requisite libraries. You can see which adaptors were run in the metadata section of the report.\n\nIf Prospector does not correctly detect your project\'s dependencies, you can specify them manually from the commandline::\n\n prospector --uses django celery\n\nAdditionally, if Prospector is automatically detecting a library that you do not in fact use, you can turn\noff autodetection completely::\n\n prospector --no-autodetect\n\nNote that as far as possible, these adaptors have been written as plugins or augmentations for the underlying\ntools so that they can be used without requiring Prospector. For example, the Django support is available as a pylint plugin.\n\nStrictness\n~~~~~~~~~~\n\nProspector has a configurable \'strictness\' level which will determine how harshly it searches for errors::\n\n prospector --strictness high\n\nPossible values are ``verylow``, ``low``, ``medium``, ``high``, ``veryhigh``.\n\nProspector does not include documentation warnings by default, but you can turn\nthis on using the ``--doc-warnings`` flag.\n\npre-commit\n----------\n\nIf you\'d like Prospector to be run automatically when making changes to files in your Git\nrepository, you can install `pre-commit <https://pre-commit.com/>`_ and add the following\ntext to your repositories\' ``.pre-commit-config.yaml``::\n\n repos:\n - repo: https://github.com/PyCQA/prospector\n rev: 1.10.0 # The version of Prospector to use, if not \'master\' for latest\n hooks:\n - id: prospector\n\nThis only installs base prospector - if you also use optional tools, for example bandit and/or mypy, then you can add\nthem to the hook configuration like so::\n\n repos:\n - repo: https://github.com/PyCQA/prospector\n rev: 1.10.0\n hooks:\n - id: prospector\n additional_dependencies:\n - ".[with_mypy,with_bandit]"\n - args: [\n \'--with-tool=mypy\',\n \'--with-tool=bandit\',\n ]\n\nAdditional dependencies can be `individually configured <https://prospector.landscape.io/en/master/profiles.html#individual-configuration-options>`_ in your `prospector.yml` file ::\n\n # https://bandit.readthedocs.io/en/latest/config.html\n bandit:\n options:\n skips:\n - B201\n - B601\n - B610\n - B611\n - B703\n\n # https://mypy.readthedocs.io/en/stable/command_line.html\n mypy:\n options:\n ignore-missing-imports: true\n\nFor prospector options which affect display only - those which are not configurable using a profile - these can be\nadded as command line arguments to the hook. For example::\n\n repos:\n - repo: https://github.com/PyCQA/prospector\n rev: 1.10.0\n hooks:\n - id: prospector\n additional_dependencies:\n - ".[with_mypy,with_bandit]"\n args:\n - --with-tool=mypy\n - --with-tool=bandit\n - --summary-only\n - --zero-exit\n\n\n\nLicense\n-------\n\nProspector is available under the GPLv2 License.\n',
67
67
  'author': 'Carl Crowder',
File without changes
File without changes