1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Add regex condition op

This commit is contained in:
jeremystretch
2021-10-25 10:14:18 -04:00
parent 2423e0872f
commit 0d84338e28
2 changed files with 19 additions and 2 deletions

View File

@@ -1,4 +1,5 @@
import functools
import re
__all__ = (
'Condition',
@@ -32,13 +33,14 @@ class Condition:
LTE = 'lte'
IN = 'in'
CONTAINS = 'contains'
REGEX = 'regex'
OPERATORS = (
EQ, GT, GTE, LT, LTE, IN, CONTAINS
EQ, GT, GTE, LT, LTE, IN, CONTAINS, REGEX
)
TYPES = {
str: (EQ, CONTAINS),
str: (EQ, CONTAINS, REGEX),
bool: (EQ, CONTAINS),
int: (EQ, GT, GTE, LT, LTE, CONTAINS),
float: (EQ, GT, GTE, LT, LTE, CONTAINS),
@@ -99,6 +101,11 @@ class Condition:
def eval_contains(self, value):
return self.value in value
# Regular expressions
def eval_regex(self, value):
return re.match(self.value, value) is not None
class ConditionSet:
"""