Skip to content

Commit e32b31e

Browse files
committed
Add warning for keyword in message member
1 parent e056999 commit e32b31e

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

rosidl_generator_py/rosidl_generator_py/generate_py_impl.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
from ast import literal_eval
15+
import keyword
1616
import os
1717
import pathlib
18+
import sys
19+
from ast import literal_eval
1820

1921
from rosidl_cmake import convert_camel_case_to_lower_case_underscore
2022
from rosidl_cmake import expand_template
@@ -31,6 +33,7 @@
3133
from rosidl_parser.definition import IdlContent
3234
from rosidl_parser.definition import IdlLocator
3335
from rosidl_parser.definition import INTEGER_TYPES
36+
from rosidl_parser.definition import Message
3437
from rosidl_parser.definition import NamespacedType
3538
from rosidl_parser.parser import parse_idl_file
3639

@@ -73,6 +76,18 @@ def generate_py(generator_arguments_file, typesupport_impls):
7376
idl_file = parse_idl_file(locator)
7477
idl_content.elements += idl_file.content.elements
7578

79+
# NOTE(sam): remove when a language specific name mangling is implemented
80+
for message in idl_content.get_elements_of_type(Message):
81+
for member in message.structure.members:
82+
msg_name = message.structure.namespaced_type.name
83+
if (keyword.iskeyword(member.name)):
84+
print(('Member name "{}" in the message "{}" is a '
85+
'reserved keyword in Python and is not supported '
86+
'at the moment. Please use a different name.')
87+
.format(member.name, msg_name), file=sys.stderr)
88+
89+
# TODO(sam): add reseved keyword warnings for services and actions
90+
7691
for subfolder in modules.keys():
7792
with open(os.path.join(args['output_dir'], subfolder, '__init__.py'), 'w') as f:
7893
for idl_stem in sorted(modules[subfolder]):

0 commit comments

Comments
 (0)