Generic filter: added options to match if a field is/isn't defined.
This commit is contained in:
parent
5e20206da4
commit
bc5d1b15c6
|
|
@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
- Internal BoM: when a `Value` field can't be interpreted as a `number+unit`,
|
||||
and it contain at least one space, now we try to use the text before the
|
||||
space. This helps for cases like "10K 1%".
|
||||
- Generic filter: options to match if a field is/isn't defined.
|
||||
|
||||
### Changed
|
||||
- Internal BoM: now components with different Tolerance, Voltage, Current
|
||||
|
|
|
|||
|
|
@ -305,6 +305,8 @@ Currently the only type available is `generic`.
|
|||
- `column`: [string=''] Name of the column to apply the regular expression.
|
||||
- *field*: Alias for column.
|
||||
- `invert`: [boolean=false] Invert the regex match result.
|
||||
- `match_if_field`: [boolean=false] Match if the field exists, no regex applied. Not affected by `invert`.
|
||||
- `match_if_no_field`: [boolean=false] Match if the field doesn't exists, no regex applied. Not affected by `invert`.
|
||||
- `regex`: [string=''] Regular expression to match.
|
||||
- *regexp*: Alias for regex.
|
||||
- `skip_if_no_field`: [boolean=false] Skip this test if the field doesn't exist.
|
||||
|
|
@ -326,6 +328,8 @@ Currently the only type available is `generic`.
|
|||
- `column`: [string=''] Name of the column to apply the regular expression.
|
||||
- *field*: Alias for column.
|
||||
- `invert`: [boolean=false] Invert the regex match result.
|
||||
- `match_if_field`: [boolean=false] Match if the field exists, no regex applied. Not affected by `invert`.
|
||||
- `match_if_no_field`: [boolean=false] Match if the field doesn't exists, no regex applied. Not affected by `invert`.
|
||||
- `regex`: [string=''] Regular expression to match.
|
||||
- *regexp*: Alias for regex.
|
||||
- `skip_if_no_field`: [boolean=false] Skip this test if the field doesn't exist.
|
||||
|
|
|
|||
|
|
@ -124,6 +124,10 @@ class Generic(BaseFilter): # noqa: F821
|
|||
if reg.skip_if_no_field and not c.is_field(reg.column):
|
||||
# Skip the check if the field doesn't exist
|
||||
continue
|
||||
if reg.match_if_field and c.is_field(reg.column):
|
||||
return True
|
||||
if reg.match_if_no_field and not c.is_field(reg.column):
|
||||
return True
|
||||
field_value = c.get_field_value(reg.column)
|
||||
res = reg.regex.search(field_value)
|
||||
if reg.invert:
|
||||
|
|
@ -145,6 +149,10 @@ class Generic(BaseFilter): # noqa: F821
|
|||
if reg.skip_if_no_field and not c.is_field(reg.column):
|
||||
# Skip the check if the field doesn't exist
|
||||
continue
|
||||
if reg.match_if_field and c.is_field(reg.column):
|
||||
return True
|
||||
if reg.match_if_no_field and not c.is_field(reg.column):
|
||||
return True
|
||||
field_value = c.get_field_value(reg.column)
|
||||
res = reg.regex.search(field_value)
|
||||
if reg.invert:
|
||||
|
|
|
|||
|
|
@ -104,6 +104,10 @@ class BoMRegex(Optionable):
|
|||
""" {regex} """
|
||||
self.skip_if_no_field = False
|
||||
""" Skip this test if the field doesn't exist """
|
||||
self.match_if_field = False
|
||||
""" Match if the field exists, no regex applied. Not affected by `invert` """
|
||||
self.match_if_no_field = False
|
||||
""" Match if the field doesn't exists, no regex applied. Not affected by `invert` """
|
||||
self.invert = False
|
||||
""" Invert the regex match result """
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue