|
10 | 10 | import pyreason.scripts.numba_wrapper.numba_types.interval_type as interval |
11 | 11 | from pyreason.scripts.threshold.threshold import Threshold |
12 | 12 |
|
13 | | -_IDENTIFIER_RE = re.compile(r'^[a-zA-Z_][a-zA-Z0-9_.\-]*$') |
| 13 | +_PREDICATE_RE = re.compile(r'^[a-zA-Z_][a-zA-Z0-9_.\-]*$') |
| 14 | +_COMPONENT_RE = re.compile(r'^[a-zA-Z0-9_][a-zA-Z0-9_.@\-]*$') |
14 | 15 |
|
15 | 16 |
|
16 | 17 | def parse_rule(rule_text: str, name: str, custom_thresholds: Union[None, list, dict], infer_edges: bool = False, set_static: bool = False, weights: Union[None, np.ndarray] = None) -> rule.Rule: |
@@ -482,19 +483,17 @@ def _parse_head_arguments(head_args_str): |
482 | 483 |
|
483 | 484 |
|
484 | 485 | def _validate_predicate_name(pred, context): |
485 | | - """Validate that a predicate name matches ^[a-zA-Z_][a-zA-Z0-9_]*$.""" |
486 | | - if not _IDENTIFIER_RE.match(pred): |
| 486 | + """Validate that a predicate name matches ^[a-zA-Z_][a-zA-Z0-9_.\\-]*$.""" |
| 487 | + if not _PREDICATE_RE.match(pred): |
487 | 488 | if pred and pred[0].isdigit(): |
488 | 489 | raise ValueError(f"{context} predicate name '{pred}' cannot start with a digit") |
489 | 490 | raise ValueError(f"{context} predicate name '{pred}' contains invalid characters. Must match [a-zA-Z_][a-zA-Z0-9_.\\-]*") |
490 | 491 |
|
491 | 492 |
|
492 | 493 | def _validate_component_name(var, context): |
493 | | - """Validate that a variable name matches ^[a-zA-Z_][a-zA-Z0-9_]*$.""" |
494 | | - if not _IDENTIFIER_RE.match(var): |
495 | | - if var and var[0].isdigit(): |
496 | | - raise ValueError(f"{context} component name '{var}' cannot start with a digit") |
497 | | - raise ValueError(f"{context} component name '{var}' contains invalid characters. Must match [a-zA-Z_][a-zA-Z0-9_.\\-]*") |
| 494 | + """Validate that a component name matches ^[a-zA-Z0-9_][a-zA-Z0-9_.@\\-]*$.""" |
| 495 | + if not _COMPONENT_RE.match(var): |
| 496 | + raise ValueError(f"{context} component name '{var}' contains invalid characters. Must match [a-zA-Z0-9_][a-zA-Z0-9_.@\\-]*") |
498 | 497 |
|
499 | 498 |
|
500 | 499 | def _str_bound_to_bound(str_bound): |
|
0 commit comments