[`flake8-bugbear`] Add more immutable functions for `B008` (#3764)

This commit is contained in:
Andy Freeland 2023-03-28 07:50:05 -07:00 committed by GitHub
parent 756e9956a2
commit bfecf684ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 77 additions and 70 deletions

View File

@ -1,5 +1,6 @@
import collections import collections
import datetime as dt import datetime as dt
from decimal import Decimal
import logging import logging
import operator import operator
import random import random
@ -165,6 +166,22 @@ def float_str_not_inf_or_nan_is_wrong(value=float("3.14")):
pass pass
# Allow decimals
def decimal_okay(value=Decimal("0.1")):
pass
# Allow dates
def date_okay(value=dt.date(2023, 3, 27)):
pass
# Allow datetimes
def datetime_okay(value=dt.datetime(2023, 3, 27, 13, 51, 59)):
pass
# Allow timedeltas
def timedelta_okay(value=dt.timedelta(hours=1)):
pass
# B006 and B008 # B006 and B008
# We should handle arbitrary nesting of these B008. # We should handle arbitrary nesting of these B008.
def nested_combo(a=[float(3), dt.datetime.now()]): def nested_combo(a=[float(3), dt.datetime.now()]):

View File

@ -32,6 +32,10 @@ impl Violation for FunctionCallInDefaultArgument {
const IMMUTABLE_FUNCS: &[&[&str]] = &[ const IMMUTABLE_FUNCS: &[&[&str]] = &[
&["", "tuple"], &["", "tuple"],
&["", "frozenset"], &["", "frozenset"],
&["datetime", "date"],
&["datetime", "datetime"],
&["datetime", "timedelta"],
&["decimal", "Decimal"],
&["operator", "attrgetter"], &["operator", "attrgetter"],
&["operator", "itemgetter"], &["operator", "itemgetter"],
&["operator", "methodcaller"], &["operator", "methodcaller"],

View File

@ -8,10 +8,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 60 row: 61
column: 24 column: 24
end_location: end_location:
row: 60 row: 61
column: 33 column: 33
fix: fix:
edits: [] edits: []
@ -22,10 +22,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 64 row: 65
column: 29 column: 29
end_location: end_location:
row: 64 row: 65
column: 31 column: 31
fix: fix:
edits: [] edits: []
@ -36,10 +36,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 68 row: 69
column: 19 column: 19
end_location: end_location:
row: 68 row: 69
column: 24 column: 24
fix: fix:
edits: [] edits: []
@ -50,10 +50,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 72 row: 73
column: 19 column: 19
end_location: end_location:
row: 72 row: 73
column: 44 column: 44
fix: fix:
edits: [] edits: []
@ -64,10 +64,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 76 row: 77
column: 31 column: 31
end_location: end_location:
row: 76 row: 77
column: 56 column: 56
fix: fix:
edits: [] edits: []
@ -78,10 +78,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 80 row: 81
column: 25 column: 25
end_location: end_location:
row: 80 row: 81
column: 44 column: 44
fix: fix:
edits: [] edits: []
@ -92,10 +92,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 85 row: 86
column: 45 column: 45
end_location: end_location:
row: 85 row: 86
column: 69 column: 69
fix: fix:
edits: [] edits: []
@ -106,10 +106,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 89 row: 90
column: 45 column: 45
end_location: end_location:
row: 89 row: 90
column: 72 column: 72
fix: fix:
edits: [] edits: []
@ -120,10 +120,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 93 row: 94
column: 44 column: 44
end_location: end_location:
row: 93 row: 94
column: 68 column: 68
fix: fix:
edits: [] edits: []
@ -134,10 +134,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 97 row: 98
column: 32 column: 32
end_location: end_location:
row: 97 row: 98
column: 34 column: 34
fix: fix:
edits: [] edits: []
@ -148,10 +148,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 170 row: 187
column: 19 column: 19
end_location: end_location:
row: 170 row: 187
column: 48 column: 48
fix: fix:
edits: [] edits: []
@ -162,10 +162,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 203 row: 220
column: 26 column: 26
end_location: end_location:
row: 203 row: 220
column: 28 column: 28
fix: fix:
edits: [] edits: []
@ -176,10 +176,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 204 row: 221
column: 34 column: 34
end_location: end_location:
row: 204 row: 221
column: 36 column: 36
fix: fix:
edits: [] edits: []
@ -190,10 +190,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 205 row: 222
column: 61 column: 61
end_location: end_location:
row: 205 row: 222
column: 66 column: 66
fix: fix:
edits: [] edits: []

View File

@ -8,10 +8,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 85 row: 86
column: 60 column: 60
end_location: end_location:
row: 85 row: 86
column: 68 column: 68
fix: fix:
edits: [] edits: []
@ -22,10 +22,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 89 row: 90
column: 63 column: 63
end_location: end_location:
row: 89 row: 90
column: 71 column: 71
fix: fix:
edits: [] edits: []
@ -36,10 +36,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 93 row: 94
column: 59 column: 59
end_location: end_location:
row: 93 row: 94
column: 67 column: 67
fix: fix:
edits: [] edits: []
@ -50,10 +50,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 109 row: 110
column: 38 column: 38
end_location: end_location:
row: 109 row: 110
column: 49 column: 49
fix: fix:
edits: [] edits: []
@ -64,38 +64,24 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 113 row: 114
column: 11 column: 11
end_location: end_location:
row: 113 row: 114
column: 28 column: 28
fix: fix:
edits: [] edits: []
parent: ~ parent: ~
- kind:
name: FunctionCallInDefaultArgument
body: "Do not perform function call `dt.timedelta` in argument defaults"
suggestion: ~
fixable: false
location:
row: 113
column: 31
end_location:
row: 113
column: 51
fix:
edits: []
parent: ~
- kind: - kind:
name: FunctionCallInDefaultArgument name: FunctionCallInDefaultArgument
body: Do not perform function call in argument defaults body: Do not perform function call in argument defaults
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 117 row: 118
column: 29 column: 29
end_location: end_location:
row: 117 row: 118
column: 44 column: 44
fix: fix:
edits: [] edits: []
@ -106,10 +92,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 155 row: 156
column: 33 column: 33
end_location: end_location:
row: 155 row: 156
column: 47 column: 47
fix: fix:
edits: [] edits: []
@ -120,10 +106,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 160 row: 161
column: 29 column: 29
end_location: end_location:
row: 160 row: 161
column: 37 column: 37
fix: fix:
edits: [] edits: []
@ -134,10 +120,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 164 row: 165
column: 44 column: 44
end_location: end_location:
row: 164 row: 165
column: 57 column: 57
fix: fix:
edits: [] edits: []
@ -148,10 +134,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 170 row: 187
column: 20 column: 20
end_location: end_location:
row: 170 row: 187
column: 28 column: 28
fix: fix:
edits: [] edits: []
@ -162,10 +148,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 170 row: 187
column: 30 column: 30
end_location: end_location:
row: 170 row: 187
column: 47 column: 47
fix: fix:
edits: [] edits: []
@ -176,10 +162,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 176 row: 193
column: 21 column: 21
end_location: end_location:
row: 176 row: 193
column: 62 column: 62
fix: fix:
edits: [] edits: []
@ -190,10 +176,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 181 row: 198
column: 18 column: 18
end_location: end_location:
row: 181 row: 198
column: 59 column: 59
fix: fix:
edits: [] edits: []
@ -204,10 +190,10 @@ expression: diagnostics
suggestion: ~ suggestion: ~
fixable: false fixable: false
location: location:
row: 181 row: 198
column: 36 column: 36
end_location: end_location:
row: 181 row: 198
column: 53 column: 53
fix: fix:
edits: [] edits: []