|
36 | 36 | ACTION_RESULT_SERVICE_SUFFIX = '_Result' |
37 | 37 | ACTION_FEEDBACK_MESSAGE_SUFFIX = '_Feedback' |
38 | 38 |
|
| 39 | +DEFAULT_ALLOW_LEGACY_FIELD_NAMES=True |
| 40 | + |
39 | 41 | PRIMITIVE_TYPES = [ |
40 | 42 | 'bool', |
41 | 43 | 'byte', |
@@ -345,15 +347,16 @@ def __str__(self): |
345 | 347 |
|
346 | 348 | class Field: |
347 | 349 |
|
348 | | - def __init__(self, type_, name, default_value_string=None): |
| 350 | + def __init__(self, type_, name, default_value_string=None, *, allow_legacy_field_naming=DEFAULT_ALLOW_LEGACY_FIELD_NAMES): |
349 | 351 | if not isinstance(type_, Type): |
350 | 352 | raise TypeError( |
351 | 353 | "the field type '%s' must be a 'Type' instance" % type_) |
352 | 354 | self.type = type_ |
353 | | - if not is_valid_field_name(name): |
354 | | - raise NameError( |
355 | | - "'{}' is an invalid field name. It should have the pattern '{}'".format( |
356 | | - name, VALID_FIELD_NAME_PATTERN.pattern)) |
| 355 | + if not allow_legacy_field_naming: |
| 356 | + if not is_valid_field_name(name): |
| 357 | + raise NameError( |
| 358 | + "'{}' is an invalid field name. It should have the pattern '{}'".format( |
| 359 | + name, VALID_FIELD_NAME_PATTERN.pattern)) |
357 | 360 | self.name = name |
358 | 361 | if default_value_string is None: |
359 | 362 | self.default_value = None |
@@ -462,7 +465,7 @@ def extract_file_level_comments(message_string): |
462 | 465 | return file_level_comments, file_content |
463 | 466 |
|
464 | 467 |
|
465 | | -def parse_message_string(pkg_name, msg_name, message_string): |
| 468 | +def parse_message_string(pkg_name, msg_name, message_string, *, allow_legacy_field_naming=DEFAULT_ALLOW_LEGACY_FIELD_NAMES): |
466 | 469 | fields = [] |
467 | 470 | constants = [] |
468 | 471 | last_element = None # either a field or a constant |
@@ -518,7 +521,9 @@ def parse_message_string(pkg_name, msg_name, message_string): |
518 | 521 | try: |
519 | 522 | fields.append(Field( |
520 | 523 | Type(type_string, context_package_name=pkg_name), |
521 | | - field_name, default_value_string)) |
| 524 | + field_name, default_value_string, |
| 525 | + allow_legacy_field_naming=allow_legacy_field_naming), |
| 526 | + ) |
522 | 527 | except Exception as err: |
523 | 528 | print( |
524 | 529 | "Error processing '{line}' of '{pkg}/{msg}': '{err}'".format( |
|
0 commit comments