• Raul Tambre's avatar
    mojo: Fix map() Python 3 compatibility · 81ba7a1a
    Raul Tambre authored
    map() returns a list in Python 2. Python 3 returns an iterator.
    Wrapping in a list() results in the same behaviour on both.
    
    Traceback (most recent call last):
      File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 569, in <module>
        sys.exit(main())
      File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 564, in main
        return args.func(args, remaining_args)
      File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 280, in _Generate
        processor._GenerateModule(
      File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 225, in _GenerateModule
        AddComputedData(module)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\generator.py", line 191, in AddComputedData
        _AddInterfaceComputedData(interface)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\generator.py", line 152, in _AddInterfaceComputedData
        method.param_struct = _GetStructFromMethod(method)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\generator.py", line 172, in _GetStructFromMethod
        _AddStructComputedData(False, struct)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\generator.py", line 126, in _AddStructComputedData
        struct.packed = pack.PackedStruct(struct)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\pack.py", line 141, in __init__
        src_fields.append(PackedField(field, index, ordinal))
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\pack.py", line 86, in __init__
        self.size = self.GetSizeForKind(field.kind)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\pack.py", line 63, in GetSizeForKind
        raise Exception("Undefined type: %s. Did you forget to import the file "
    Exception: Undefined type: x:IndexId. Did you forget to import the file containing the definition?
    
    Traceback (most recent call last):
      File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 565, in <module>
        sys.exit(main())
      File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 560, in main
        return args.func(args, remaining_args)
      File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 276, in _Generate
        processor._GenerateModule(
      File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 245, in _GenerateModule
        generator.GenerateFiles(filtered_args)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\generators\mojom_cpp_generator.py", line 491, in GenerateFiles
        self.WriteWithComment(self._GenerateModuleSource(),
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\template_expander.py", line 37, in GeneratorInternal
        return ApplyTemplate(args[0], path_to_template, parameters, **kwargs)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\template_expander.py", line 31, in ApplyTemplate
        return template.render(params)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\..\..\..\..\..\..\..\third_party\jinja2\asyncsupport.py", line 76, in render
        return original_render(self, *args, **kwargs)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\..\..\..\..\..\..\..\third_party\jinja2\environment.py", line 1008, in render
        return self.environment.handle_exception(exc_info, True)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\..\..\..\..\..\..\..\third_party\jinja2\environment.py", line 780, in handle_exception
        reraise(exc_type, exc_value, tb)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\..\..\..\..\..\..\..\third_party\jinja2\_compat.py", line 37, in reraise
        raise value.with_traceback(tb)
      File "gen\mojo\public\tools\bindings\cpp_templates.zip\tmpl_443233f41d2b3f893c5bf0eb0f069e01da908ebe.py", line 89, in <module>
      File "gen\mojo\public\tools\bindings\cpp_templates.zip\tmpl_c45f6ba3b78f1db0b9ac3d8f2287ed476074b615.py", line 15, in <module>
      File "C:\Google\chromium\src\mojo\public\tools\bindings\generators\mojom_cpp_generator.py", line 521, in _DefaultValue
        expression = self._ExpressionToText(field.default, kind=field.kind)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\generators\mojom_cpp_generator.py", line 852, in _ExpressionToText
        return self._TranslateConstants(value, kind)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\generators\mojom_cpp_generator.py", line 830, in _TranslateConstants
        return self._GetNameForKind(token, flatten_nested_kind=True)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\generators\mojom_cpp_generator.py", line 530, in _GetNameForKind
        return _NameFormatter(kind, self.variant).FormatForCpp(
      File "C:\Google\chromium\src\mojo\public\tools\bindings\generators\mojom_cpp_generator.py", line 73, in FormatForCpp
        return self.Format(
      File "C:\Google\chromium\src\mojo\public\tools\bindings\generators\mojom_cpp_generator.py", line 68, in Format
        parts.extend(self._GetName(internal, flatten_nested_kind))
      File "C:\Google\chromium\src\mojo\public\tools\bindings\generators\mojom_cpp_generator.py", line 94, in _GetName
        name_parts.append(self._token.name)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\module.py", line 273, in name
        return self.field.name
    AttributeError: 'EnumField' object has no attribute 'name'
    
    Traceback (most recent call last):
      File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 565, in <module>
        sys.exit(main())
      File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 560, in main
        return args.func(args, remaining_args)
      File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 276, in _Generate
        processor._GenerateModule(
      File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 245, in _GenerateModule
        generator.GenerateFiles(filtered_args)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\generators\mojom_cpp_generator.py", line 491, in GenerateFiles
        self.WriteWithComment(self._GenerateModuleSource(),
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\template_expander.py", line 37, in GeneratorInternal
        return ApplyTemplate(args[0], path_to_template, parameters, **kwargs)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\template_expander.py", line 31, in ApplyTemplate
        return template.render(params)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\..\..\..\..\..\..\..\third_party\jinja2\asyncsupport.py", line 76, in render
        return original_render(self, *args, **kwargs)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\..\..\..\..\..\..\..\third_party\jinja2\environment.py", line 1008, in render
        return self.environment.handle_exception(exc_info, True)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\..\..\..\..\..\..\..\third_party\jinja2\environment.py", line 780, in handle_exception
        reraise(exc_type, exc_value, tb)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\..\..\..\..\..\..\..\third_party\jinja2\_compat.py", line 37, in reraise
        raise value.with_traceback(tb)
      File "gen\mojo\public\tools\bindings\cpp_templates.zip\tmpl_443233f41d2b3f893c5bf0eb0f069e01da908ebe.py", line 95, in <module>
      File "gen\mojo\public\tools\bindings\cpp_templates.zip\tmpl_cdddecaaf43ca3c14ffb4bf4ac7c495e7415ba70.py", line 2, in <module>
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\..\..\..\..\..\..\..\third_party\jinja2\environment.py", line 430, in getattr
        return getattr(obj, attribute)
    jinja2.exceptions.UndefinedError: map object has no element 0
    
    Traceback (most recent call last):
      File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 565, in <module>
        sys.exit(main())
      File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 560, in main
        return args.func(args, remaining_args)
      File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 276, in _Generate
        processor._GenerateModule(
      File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 221, in _GenerateModule
        AddComputedData(module)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\generator.py", line 187, in AddComputedData
        _AddStructComputedData(True, struct)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\generator.py", line 126, in _AddStructComputedData
        struct.packed = pack.PackedStruct(struct)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\pack.py", line 141, in __init__
        src_fields.append(PackedField(field, index, ordinal))
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\pack.py", line 86, in __init__
        self.size = self.GetSizeForKind(field.kind)
      File "C:\Google\chromium\src\mojo\public\tools\bindings\pylib\mojom\generate\pack.py", line 63, in GetSizeForKind
        raise Exception("Undefined type: %s. Did you forget to import the file "
    Exception: Undefined type: x:EnforcementLevel. Did you forget to import the file containing the definition?
    
    Bug: 941669
    Change-Id: Ia19f39d4134fb063c4407eb20a4f909f693e6f27
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2081812
    Auto-Submit: Raul Tambre <raul@tambre.ee>
    Commit-Queue: Ken Rockot <rockot@google.com>
    Reviewed-by: default avatarKen Rockot <rockot@google.com>
    Cr-Commit-Position: refs/heads/master@{#746174}
    81ba7a1a
translate.py 25.8 KB