Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1209)

Unified Diff: mojo/public/tools/bindings/generators/mojom_python_generator.py

Issue 545433002: mojo: Generate top level enums for python bindings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Follow sdefresne suugestions. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/public/tools/bindings/generators/mojom_python_generator.py
diff --git a/mojo/public/tools/bindings/generators/mojom_python_generator.py b/mojo/public/tools/bindings/generators/mojom_python_generator.py
index ca9625ebc784a3c77d17c89028d31f1dde1fda82..37d39589ad929ff19540e089417ea21924e134ea 100644
--- a/mojo/public/tools/bindings/generators/mojom_python_generator.py
+++ b/mojo/public/tools/bindings/generators/mojom_python_generator.py
@@ -34,15 +34,18 @@ def ConstantStyle(name):
return '_'.join([x.upper() for x in components])
def GetNameForElement(element):
+ if isinstance(element, mojom.EnumValue):
+ return (UpperCamelCase(element.enum_name) + '.' +
+ ConstantStyle(element.name))
if isinstance(element, (mojom.NamedValue,
mojom.Constant)):
return ConstantStyle(element.name)
raise Exception('Unexpected element: ' % element)
-def TranslateConstants(token):
+def ExpressionToText(token):
if isinstance(token, (mojom.EnumValue, mojom.NamedValue)):
# Both variable and enum constants are constructed like:
- # NamespaceUid.Struct[.Enum].CONSTANT_NAME
+ # PythonModule[.Struct][.Enum].CONSTANT_NAME
name = []
if token.imported_from:
name.append(token.imported_from['python_module'])
@@ -51,7 +54,7 @@ def TranslateConstants(token):
if isinstance(token, mojom.EnumValue):
name.append(GetNameForElement(token))
else:
- name.append(token.name)
+ name.append(GetNameForElement(token))
return '.'.join(name)
if isinstance(token, mojom.BuiltinValue):
@@ -66,10 +69,6 @@ def TranslateConstants(token):
return token
-def ExpressionToText(value):
- return TranslateConstants(value)
-
-
class Generator(generator.Generator):
python_filters = {
@@ -81,6 +80,7 @@ class Generator(generator.Generator):
def GeneratePythonModule(self):
return {
'imports': self.GetImports(),
+ 'enums': self.module.enums,
'module': self.module,
}

Powered by Google App Engine
This is Rietveld 408576698