From 941f2cb6240c85d1347c4f881fb50ee629549376 Mon Sep 17 00:00:00 2001 From: pyrco <105293448+pyrco@users.noreply.github.com> Date: Mon, 11 Nov 2024 14:31:17 +0100 Subject: [PATCH] Fix the record field name validator regex (#151) The original regex allowed a literal "[]" at the end of a name, which breaks using the name as Python identifier. --- flow/record/base.py | 2 +- tests/test_regression.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/flow/record/base.py b/flow/record/base.py index 2f915cb..1b2cf62 100644 --- a/flow/record/base.py +++ b/flow/record/base.py @@ -89,7 +89,7 @@ RECORDSTREAM_MAGIC = b"RECORDSTREAM\n" RECORDSTREAM_MAGIC_DEPTH = 4 + 2 + len(RECORDSTREAM_MAGIC) -RE_VALID_FIELD_NAME = re.compile(r"^_?[a-zA-Z][a-zA-Z0-9_]*(?:\[\])?$") +RE_VALID_FIELD_NAME = re.compile(r"^_?[a-zA-Z][a-zA-Z0-9_]*$") RE_VALID_RECORD_TYPE_NAME = re.compile("^[a-zA-Z][a-zA-Z0-9_]*(/[a-zA-Z][a-zA-Z0-9_]*)*$") RECORD_CLASS_TEMPLATE = """ diff --git a/tests/test_regression.py b/tests/test_regression.py index e90de6b..6f2f253 100644 --- a/tests/test_regression.py +++ b/tests/test_regression.py @@ -316,6 +316,8 @@ def test_mixed_case_name(): assert is_valid_field_name("Test") assert is_valid_field_name("test") assert is_valid_field_name("TEST") + assert not is_valid_field_name("test[]") + assert not is_valid_field_name("_test") TestRecord = RecordDescriptor( "Test/Record",