mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-17 00:04:42 +04:00
Make Not and NotIn namedtuples
This commit is contained in:
parent
bc9344bb40
commit
a0a8fc15ff
3 changed files with 7 additions and 10 deletions
|
|
@ -124,7 +124,7 @@ CONFIG_REPO_DICT = schema.Map(
|
|||
schema.Conditional(
|
||||
'sha', schema.check_string,
|
||||
condition_key='repo',
|
||||
condition_value=schema.NotIn((_LOCAL_SENTINEL, _META_SENTINEL)),
|
||||
condition_value=schema.NotIn(_LOCAL_SENTINEL, _META_SENTINEL),
|
||||
ensure_absent=True,
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -201,17 +201,14 @@ class Array(collections.namedtuple('Array', ('of',))):
|
|||
return [remove_defaults(val, self.of) for val in v]
|
||||
|
||||
|
||||
class Not(object):
|
||||
def __init__(self, val):
|
||||
self.val = val
|
||||
|
||||
class Not(collections.namedtuple('Not', ('val',))):
|
||||
def __eq__(self, other):
|
||||
return other is not MISSING and other != self.val
|
||||
|
||||
|
||||
class NotIn(object):
|
||||
def __init__(self, values):
|
||||
self.values = values
|
||||
class NotIn(collections.namedtuple('NotIn', ('values',))):
|
||||
def __new__(cls, *values):
|
||||
return super(NotIn, cls).__new__(cls, values=values)
|
||||
|
||||
def __eq__(self, other):
|
||||
return other is not MISSING and other not in self.values
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ def test_not(val, expected):
|
|||
(('bar', True), ('foo', False), (MISSING, False)),
|
||||
)
|
||||
def test_not_in(values, expected):
|
||||
compared = NotIn(('baz', 'foo'))
|
||||
compared = NotIn('baz', 'foo')
|
||||
assert (values == compared) is expected
|
||||
assert (compared == values) is expected
|
||||
|
||||
|
|
@ -211,7 +211,7 @@ map_conditional_absent_not_in = Map(
|
|||
'foo', 'key',
|
||||
Conditional(
|
||||
'key2', check_bool,
|
||||
condition_key='key', condition_value=NotIn((1, 2)), ensure_absent=True,
|
||||
condition_key='key', condition_value=NotIn(1, 2), ensure_absent=True,
|
||||
),
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue