prospector 1.15.2__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.2 → prospector-1.15.3}/PKG-INFO +1 -1
  2. {prospector-1.15.2 → prospector-1.15.3}/prospector/blender_combinations.yaml +70 -7
  3. {prospector-1.15.2 → prospector-1.15.3}/pyproject.toml +1 -1
  4. {prospector-1.15.2 → prospector-1.15.3}/setup.py +1 -1
  5. {prospector-1.15.2 → prospector-1.15.3}/LICENSE +0 -0
  6. {prospector-1.15.2 → prospector-1.15.3}/README.rst +0 -0
  7. {prospector-1.15.2 → prospector-1.15.3}/prospector/__init__.py +0 -0
  8. {prospector-1.15.2 → prospector-1.15.3}/prospector/__main__.py +0 -0
  9. {prospector-1.15.2 → prospector-1.15.3}/prospector/autodetect.py +0 -0
  10. {prospector-1.15.2 → prospector-1.15.3}/prospector/blender.py +0 -0
  11. {prospector-1.15.2 → prospector-1.15.3}/prospector/compat.py +0 -0
  12. {prospector-1.15.2 → prospector-1.15.3}/prospector/config/__init__.py +0 -0
  13. {prospector-1.15.2 → prospector-1.15.3}/prospector/config/configuration.py +0 -0
  14. {prospector-1.15.2 → prospector-1.15.3}/prospector/config/datatype.py +0 -0
  15. {prospector-1.15.2 → prospector-1.15.3}/prospector/encoding.py +0 -0
  16. {prospector-1.15.2 → prospector-1.15.3}/prospector/exceptions.py +0 -0
  17. {prospector-1.15.2 → prospector-1.15.3}/prospector/finder.py +0 -0
  18. {prospector-1.15.2 → prospector-1.15.3}/prospector/formatters/__init__.py +0 -0
  19. {prospector-1.15.2 → prospector-1.15.3}/prospector/formatters/base.py +0 -0
  20. {prospector-1.15.2 → prospector-1.15.3}/prospector/formatters/base_summary.py +0 -0
  21. {prospector-1.15.2 → prospector-1.15.3}/prospector/formatters/emacs.py +0 -0
  22. {prospector-1.15.2 → prospector-1.15.3}/prospector/formatters/grouped.py +0 -0
  23. {prospector-1.15.2 → prospector-1.15.3}/prospector/formatters/json.py +0 -0
  24. {prospector-1.15.2 → prospector-1.15.3}/prospector/formatters/pylint.py +0 -0
  25. {prospector-1.15.2 → prospector-1.15.3}/prospector/formatters/pylint_parseable.py +0 -0
  26. {prospector-1.15.2 → prospector-1.15.3}/prospector/formatters/text.py +0 -0
  27. {prospector-1.15.2 → prospector-1.15.3}/prospector/formatters/vscode.py +0 -0
  28. {prospector-1.15.2 → prospector-1.15.3}/prospector/formatters/xunit.py +0 -0
  29. {prospector-1.15.2 → prospector-1.15.3}/prospector/formatters/yaml.py +0 -0
  30. {prospector-1.15.2 → prospector-1.15.3}/prospector/message.py +0 -0
  31. {prospector-1.15.2 → prospector-1.15.3}/prospector/pathutils.py +0 -0
  32. {prospector-1.15.2 → prospector-1.15.3}/prospector/postfilter.py +0 -0
  33. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/__init__.py +0 -0
  34. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/exceptions.py +0 -0
  35. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profile.py +0 -0
  36. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profiles/default.yaml +0 -0
  37. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profiles/doc_warnings.yaml +0 -0
  38. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profiles/flake8.yaml +0 -0
  39. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profiles/full_pep8.yaml +0 -0
  40. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profiles/member_warnings.yaml +0 -0
  41. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profiles/no_doc_warnings.yaml +0 -0
  42. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profiles/no_member_warnings.yaml +0 -0
  43. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profiles/no_pep8.yaml +0 -0
  44. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profiles/no_test_warnings.yaml +0 -0
  45. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profiles/strictness_high.yaml +0 -0
  46. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profiles/strictness_low.yaml +0 -0
  47. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profiles/strictness_medium.yaml +0 -0
  48. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profiles/strictness_none.yaml +0 -0
  49. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profiles/strictness_veryhigh.yaml +0 -0
  50. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profiles/strictness_verylow.yaml +0 -0
  51. {prospector-1.15.2 → prospector-1.15.3}/prospector/profiles/profiles/test_warnings.yaml +0 -0
  52. {prospector-1.15.2 → prospector-1.15.3}/prospector/run.py +0 -0
  53. {prospector-1.15.2 → prospector-1.15.3}/prospector/suppression.py +0 -0
  54. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/__init__.py +0 -0
  55. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/bandit/__init__.py +0 -0
  56. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/base.py +0 -0
  57. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/dodgy/__init__.py +0 -0
  58. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/exceptions.py +0 -0
  59. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/mccabe/__init__.py +0 -0
  60. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/mypy/__init__.py +0 -0
  61. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/profile_validator/__init__.py +0 -0
  62. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/pycodestyle/__init__.py +0 -0
  63. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/pydocstyle/__init__.py +0 -0
  64. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/pyflakes/__init__.py +0 -0
  65. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/pylint/__init__.py +0 -0
  66. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/pylint/collector.py +0 -0
  67. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/pylint/linter.py +0 -0
  68. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/pyright/__init__.py +0 -0
  69. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/pyroma/__init__.py +0 -0
  70. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/ruff/__init__.py +0 -0
  71. {prospector-1.15.2 → prospector-1.15.3}/prospector/tools/utils.py +0 -0
  72. {prospector-1.15.2 → 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.2
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,7 @@ combinations:
199
226
  - pep8: N804
200
227
  - pycodestyle: N804
201
228
  - pylint: bad-classmethod-argument
229
+ - pylint: C0202
202
230
  - ruff: N804
203
231
 
204
232
  - # '<>' is deprecated, use '!='
@@ -213,38 +241,46 @@ combinations:
213
241
 
214
242
  - # Redefining name from outer scope
215
243
  - pylint: redefined-outer-name
244
+ - pylint: W0621
216
245
  - pyflakes: F810
217
246
  - frosted: E306
218
247
  - ruff: F810
219
248
 
220
249
  - # Redefinition of unused variable
221
250
  - pylint: redefined-outer-name
251
+ - pylint: W0621
222
252
  - pyflakes: F811
223
253
 
224
254
  - # Wildcard import
225
255
  - pylint: wildcard-import
256
+ - pylint: W0614
226
257
  - pyflakes: F403
227
258
  - frosted: E103
228
259
  - ruff: F403
229
260
 
230
261
  - # Return with argument inside generator
231
262
  - pylint: return-arg-in-generator
263
+ - pylint: E0110
232
264
  - frosted: E208
233
265
 
234
266
  - # Too many positional arguments for function call
235
267
  - pylint: too-many-function-args
268
+ - pylint: E1121
236
269
  - frosted: E203
237
270
 
238
271
  - # Passing unexpected keyword argument
239
272
  - pylint: unexpected-keyword-arg
273
+ - pylint: E1123
240
274
  - frosted: E204
241
275
 
242
276
  - # Missing mandatory keyword argument
243
277
  - pylint: missing-kwoa
278
+ - pylint: E1125
244
279
  - frosted: E205
245
280
 
246
281
  - # No exception type(s) specified
247
282
  - pylint: bare-except
283
+ - pylint: W0702
248
284
  - frosted: W101
249
285
  - pep8: E722
250
286
  - pycodestyle: E722
@@ -255,6 +291,7 @@ combinations:
255
291
 
256
292
  - # No exception type(s) specified
257
293
  - pylint: bare-except
294
+ - pylint: W0702
258
295
  - frosted: W101
259
296
  - pep8: E722
260
297
  - pycodestyle: E722
@@ -265,10 +302,17 @@ combinations:
265
302
 
266
303
  - # Do not catch blind exception: `Exception`
267
304
  - pylint: broad-exception-caught
305
+ - pylint: W0718
268
306
  - ruff: BLE001
269
307
 
308
+ - # Do not catch blind exception: `BaseException`
309
+ - pylint: broad-except
310
+ - pylint: W0703
311
+ - ruff: BLE002
312
+
270
313
  - # Create your own exception
271
314
  - pylint: broad-exception-raised
315
+ - pylint: W0719
272
316
  - ruff: TRY002
273
317
 
274
318
  - # Spaces around keyword/parameter equals
@@ -308,6 +352,7 @@ combinations:
308
352
 
309
353
  - # pep8-naming incorrectly suggests that the first argument of a metaclass __new__ method should be 'cls'
310
354
  - pylint: bad-mcs-classmethod-argument
355
+ - pylint: C0204
311
356
  - pep8: N804
312
357
  - pycodestyle: N804
313
358
 
@@ -315,21 +360,25 @@ combinations:
315
360
  - pep8: N801
316
361
  - pycodestyle: N801
317
362
  - pylint: invalid-name
363
+ - pylint: C0103
318
364
 
319
- # function name should be lowercase
320
- - - pylint: invalid-name
365
+ - # function name should be lowercase
366
+ - pylint: invalid-name
367
+ - pylint: C0103
321
368
  - pep8: N802
322
369
  - pycodestyle: N802
323
370
  - ruff: N802
324
371
 
325
- # argument name should be lowercase
326
- - - pylint: invalid-name
372
+ - # argument name should be lowercase
373
+ - pylint: invalid-name
374
+ - pylint: C0103
327
375
  - pep8: N803
328
376
  - pycodestyle: N803
329
377
  - ruff: N803
330
378
 
331
- # Variable in function should be lowercase
332
- - - pylint: invalid-name
379
+ - # Variable in function should be lowercase
380
+ - pylint: invalid-name
381
+ - pylint: C0103
333
382
  - pep8: N806
334
383
  - pycodestyle: N806
335
384
  - ruff: N806
@@ -344,44 +393,50 @@ combinations:
344
393
  - pylint: too-many-statements
345
394
  - pylint: R0915
346
395
  - mccabe: MC0001
347
- - pylint: too-many-statements
348
396
  - ruff: PLR0915
349
397
 
350
398
  - # pep257 takes preference over pylint documentation warnings
351
399
  - pep257: D100
352
400
  - pydocstyle: D100
353
401
  - pylint: missing-docstring
402
+ - pylint: C0111
354
403
  - ruff: D100
355
404
 
356
405
  - # Missing docstring in public class
357
406
  - pep257: D101
358
407
  - pydocstyle: D101
359
408
  - pylint: missing-docstring
409
+ - pylint: C0111
360
410
  - ruff: D101
361
411
 
362
412
  - # Missing docstring in public method
363
413
  - pep257: D102
364
414
  - pydocstyle: D102
365
415
  - pylint: missing-docstring
416
+ - pylint: C0111
366
417
  - ruff: D102
367
418
 
368
419
  - # Missing docstring in public function
369
420
  - pep257: D103
370
421
  - pydocstyle: D103
371
422
  - pylint: missing-docstring
423
+ - pylint: C0111
372
424
  - ruff: D103
373
425
 
374
426
  - - pylint: singleton-comparison
427
+ - pylint: C0221
375
428
  - pep8: E711
376
429
  - pycodestyle: E711
377
430
 
378
431
  - - pylint: subprocess-run-check
432
+ - pylint: W1510
379
433
  - bandit: B603
380
434
  - ruff: S603
381
435
  - ruff: PLW1510
382
436
 
383
437
  - # Private member accessed:
384
438
  - pylint: protected-access
439
+ - pylint: W0212
385
440
  - ruff: SLF001
386
441
 
387
442
  # assert_used
@@ -418,6 +473,7 @@ combinations:
418
473
 
419
474
  # request_without_timeout
420
475
  - - pylint: missing-timeout
476
+ - pylint: W3101
421
477
  - ruff: S113
422
478
  - bandit: B113
423
479
 
@@ -528,11 +584,13 @@ combinations:
528
584
  # Within an `except` clause, raise exceptions with `raise ... from err` or `raise ... from None` to distinguish them from errors in exception handling
529
585
  # See: https://docs.astral.sh/ruff/rules/raise-without-from-inside-except
530
586
  - - pylint: raise-missing-from
587
+ - pylint: W0707
531
588
  - ruff: B904
532
589
 
533
590
  # Use of possibly insecure function - consider using safer ast.literal_eval
534
591
  # See: https://docs.astral.sh/ruff/rules/suspicious-eval-usage
535
592
  - - pylint: eval-used
593
+ - pylint: W0123
536
594
  - bandit: B307
537
595
  - ruff: S307
538
596
 
@@ -1081,6 +1139,11 @@ combinations:
1081
1139
  - pylint: W3301
1082
1140
  - ruff: PLW3301
1083
1141
 
1142
+ - # Consider using 'with' for resource-allocating operations
1143
+ - pylint: consider-using-with
1144
+ - pylint: R1732
1145
+ - ruff: SIM115
1146
+
1084
1147
  - # Missing docstring in public package
1085
1148
  - ruff: D104
1086
1149
  - pycodestyle: D104
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "prospector"
3
- version = "1.15.2"
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.2',
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