summaryrefslogtreecommitdiff
path: root/mojo/public/tools/bindings/mojom_bindings_generator.py
diff options
context:
space:
mode:
Diffstat (limited to 'mojo/public/tools/bindings/mojom_bindings_generator.py')
-rwxr-xr-xmojo/public/tools/bindings/mojom_bindings_generator.py37
1 files changed, 19 insertions, 18 deletions
diff --git a/mojo/public/tools/bindings/mojom_bindings_generator.py b/mojo/public/tools/bindings/mojom_bindings_generator.py
index 57a803178e..2e39b1e873 100755
--- a/mojo/public/tools/bindings/mojom_bindings_generator.py
+++ b/mojo/public/tools/bindings/mojom_bindings_generator.py
@@ -7,7 +7,7 @@
import argparse
-import cPickle
+import pickle
import hashlib
import importlib
import json
@@ -62,10 +62,10 @@ def LoadGenerators(generators_string):
for generator_name in [s.strip() for s in generators_string.split(",")]:
language = generator_name.lower()
if language not in _BUILTIN_GENERATORS:
- print "Unknown generator name %s" % generator_name
+ print("Unknown generator name %s" % generator_name)
sys.exit(1)
generator_module = importlib.import_module(
- "generators.%s" % _BUILTIN_GENERATORS[language])
+ "mojo.public.tools.bindings.generators.%s" % _BUILTIN_GENERATORS[language])
generators[language] = generator_module
return generators
@@ -158,7 +158,7 @@ class MojomProcessor(object):
for filename in typemaps:
with open(filename) as f:
typemaps = json.loads("".join(filter(no_comments, f.readlines())))
- for language, typemap in typemaps.iteritems():
+ for language, typemap in typemaps.items():
language_map = self._typemap.get(language, {})
language_map.update(typemap)
self._typemap[language] = language_map
@@ -170,12 +170,13 @@ class MojomProcessor(object):
return self._processed_files[rel_filename.path]
if rel_filename.path in imported_filename_stack:
- print "%s: Error: Circular dependency" % rel_filename.path + \
- MakeImportStackMessage(imported_filename_stack + [rel_filename.path])
+ print("%s: Error: Circular dependency" % rel_filename.path +
+ MakeImportStackMessage(imported_filename_stack + [rel_filename.path]))
sys.exit(1)
tree = _UnpickleAST(_FindPicklePath(rel_filename, args.gen_directories +
[args.output_dir]))
+
dirname = os.path.dirname(rel_filename.path)
# Process all our imports first and collect the module object for each.
@@ -202,7 +203,7 @@ class MojomProcessor(object):
if self._should_generate(rel_filename.path):
AddComputedData(module)
- for language, generator_module in generator_modules.iteritems():
+ for language, generator_module in generator_modules.items():
generator = generator_module.Generator(
module, args.output_dir, typemap=self._typemap.get(language, {}),
variant=args.variant, bytecode_path=args.bytecode_path,
@@ -278,17 +279,17 @@ def _PickleAST(ast, output_file):
fileutil.EnsureDirectoryExists(full_dir)
try:
- WriteFile(cPickle.dumps(ast), output_file)
- except (IOError, cPickle.PicklingError) as e:
- print "%s: Error: %s" % (output_file, str(e))
+ WriteFile(pickle.dumps(ast, protocol=0), output_file)
+ except (IOError, pickle.PicklingError) as e:
+ print("%s: Error: %s" % (output_file, str(e)))
sys.exit(1)
def _UnpickleAST(input_file):
try:
with open(input_file, "rb") as f:
- return cPickle.load(f)
- except (IOError, cPickle.UnpicklingError) as e:
- print "%s: Error: %s" % (input_file, str(e))
+ return pickle.load(f)
+ except (IOError, pickle.UnpicklingError) as e:
+ print("%s: Error: %s" % (input_file, str(e)))
sys.exit(1)
def _ParseFile(args, rel_filename):
@@ -296,14 +297,14 @@ def _ParseFile(args, rel_filename):
with open(rel_filename.path) as f:
source = f.read()
except IOError as e:
- print "%s: Error: %s" % (rel_filename.path, e.strerror)
+ print("%s: Error: %s" % (rel_filename.path, e.strerror))
sys.exit(1)
try:
tree = Parse(source, rel_filename.path)
RemoveDisabledDefinitions(tree, args.enabled_features)
except Error as e:
- print "%s: Error: %s" % (rel_filename.path, str(e))
+ print("%s: Error: %s" % (rel_filename.path, str(e)))
sys.exit(1)
_PickleAST(tree, _GetPicklePath(rel_filename, args.output_dir))
@@ -355,9 +356,9 @@ def _VerifyImportDeps(args, __):
deps_sources.add(full_source_path.rstrip('\n'))
if (not deps_sources.issuperset(mojom_imports)):
- print ">>> [%s] Missing dependencies for the following imports: %s" % ( \
- args.filename[0], \
- list(mojom_imports.difference(deps_sources)))
+ print(">>> [%s] Missing dependencies for the following imports: %s" % (
+ args.filename[0],
+ list(mojom_imports.difference(deps_sources))))
sys.exit(1)
source_filename, _ = os.path.splitext(rel_path.relative_path())