|
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