Fix sorting behavior and remove absolute imports

Python 2 sorting behavior handled multiple types so this needs to
reflect that behavior. 2to3 adds absolute imports that don't resolve
correctly, and likely requires additional configuration. For now,
leave as relative imports.
diff --git a/bindings/scripts/aggregate_generated_bindings.py b/bindings/scripts/aggregate_generated_bindings.py
index 30177c4..bb095c1 100755
--- a/bindings/scripts/aggregate_generated_bindings.py
+++ b/bindings/scripts/aggregate_generated_bindings.py
@@ -52,9 +52,9 @@
 import os
 import re
 import sys
-from .utilities import idl_filename_to_basename
-from .utilities import read_idl_files_list_from_file
-from .utilities import to_snake_case
+from utilities import idl_filename_to_basename
+from utilities import read_idl_files_list_from_file
+from utilities import to_snake_case
 
 COPYRIGHT_TEMPLATE = """/*
  * THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT.
diff --git a/bindings/scripts/blink_idl_parser.py b/bindings/scripts/blink_idl_parser.py
index d519349..810182a 100644
--- a/bindings/scripts/blink_idl_parser.py
+++ b/bindings/scripts/blink_idl_parser.py
@@ -71,9 +71,7 @@
 from idl_parser.idl_parser import IDLParser  # pylint: disable=import-error
 from idl_parser.idl_parser import ParseFile as parse_file
 
-from .blink_idl_lexer import BlinkIDLLexer
-from . import blink_idl_lexer
-
+from blink_idl_lexer import BlinkIDLLexer
 
 class BlinkIDLParser(IDLParser):
     def __init__(self,
diff --git a/bindings/scripts/blink_idl_parser_test.py b/bindings/scripts/blink_idl_parser_test.py
index df06412..309b463 100644
--- a/bindings/scripts/blink_idl_parser_test.py
+++ b/bindings/scripts/blink_idl_parser_test.py
@@ -8,7 +8,7 @@
 
 import unittest
 
-from .blink_idl_parser import BlinkIDLParser
+from blink_idl_parser import BlinkIDLParser
 
 
 class BlinkIDLParserTest(unittest.TestCase):
diff --git a/bindings/scripts/code_generator.py b/bindings/scripts/code_generator.py
index e8d6edb..8f0c465 100644
--- a/bindings/scripts/code_generator.py
+++ b/bindings/scripts/code_generator.py
@@ -11,14 +11,14 @@
 import re
 import sys
 
-from .idl_types import set_ancestors, IdlType
-from .v8_globals import includes
-from .v8_interface import constant_filters
-from .v8_types import set_component_dirs
-from .v8_methods import method_filters
-from . import v8_utilities
-from .v8_utilities import capitalize
-from .utilities import (idl_filename_to_component, is_valid_component_dependency,
+from idl_types import set_ancestors, IdlType
+from v8_globals import includes
+from v8_interface import constant_filters
+from v8_types import set_component_dirs
+from v8_methods import method_filters
+import v8_utilities
+from v8_utilities import capitalize
+from utilities import (idl_filename_to_component, is_valid_component_dependency,
                        format_remove_duplicates, format_blink_cpp_source_code,
                        to_snake_case)
 
diff --git a/bindings/scripts/code_generator_v8.py b/bindings/scripts/code_generator_v8.py
index b455c1e..abd7f5c 100644
--- a/bindings/scripts/code_generator_v8.py
+++ b/bindings/scripts/code_generator_v8.py
@@ -48,18 +48,18 @@
 import os
 import posixpath
 
-from .code_generator import CodeGeneratorBase, render_template, normalize_and_sort_includes
-from .idl_definitions import Visitor
-from .idl_types import IdlType
-from . import v8_callback_function
-from . import v8_callback_interface
-from . import v8_dictionary
-from .v8_globals import includes
-from . import v8_interface
-from . import v8_types
-from . import v8_union
-from .v8_utilities import build_basename, cpp_name
-from .utilities import idl_filename_to_component, is_testing_target, shorten_union_name, to_snake_case
+from code_generator import CodeGeneratorBase, render_template, normalize_and_sort_includes
+from idl_definitions import Visitor
+from idl_types import IdlType
+import v8_callback_function
+import v8_callback_interface
+import v8_dictionary
+from v8_globals import includes
+import v8_interface
+import v8_types
+import v8_union
+from v8_utilities import build_basename, cpp_name
+from utilities import idl_filename_to_component, is_testing_target, shorten_union_name, to_snake_case
 
 
 # Make sure extension is .py, not .pyc or .pyo, so doesn't depend on caching
diff --git a/bindings/scripts/code_generator_web_agent_api.py b/bindings/scripts/code_generator_web_agent_api.py
index 60b165a..69d4aff 100644
--- a/bindings/scripts/code_generator_web_agent_api.py
+++ b/bindings/scripts/code_generator_web_agent_api.py
@@ -23,9 +23,9 @@
 import posixpath
 import sys
 
-from .code_generator import CodeGeneratorBase, render_template
+from code_generator import CodeGeneratorBase, render_template
 # TODO(dglazkov): Move TypedefResolver to code_generator.py
-from .code_generator_v8 import TypedefResolver
+from code_generator_v8 import TypedefResolver
 
 sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..',
                              'third_party', 'blink', 'tools'))
diff --git a/bindings/scripts/code_generator_web_agent_api_test.py b/bindings/scripts/code_generator_web_agent_api_test.py
index d366924..b5260b8 100644
--- a/bindings/scripts/code_generator_web_agent_api_test.py
+++ b/bindings/scripts/code_generator_web_agent_api_test.py
@@ -8,18 +8,18 @@
 
 import unittest
 
-from .code_generator_web_agent_api import InterfaceContextBuilder
-from .code_generator_web_agent_api import MethodOverloadSplitter
-from .code_generator_web_agent_api import STRING_INCLUDE_PATH
-from .code_generator_web_agent_api import TypeResolver
-from .idl_definitions import IdlArgument
-from .idl_definitions import IdlAttribute
-from .idl_definitions import IdlOperation
-from .idl_types import IdlType
-from .idl_types import IdlNullableType
-from .idl_types import IdlUnionType
-from .idl_types import PRIMITIVE_TYPES
-from .idl_types import STRING_TYPES
+from code_generator_web_agent_api import InterfaceContextBuilder
+from code_generator_web_agent_api import MethodOverloadSplitter
+from code_generator_web_agent_api import STRING_INCLUDE_PATH
+from code_generator_web_agent_api import TypeResolver
+from idl_definitions import IdlArgument
+from idl_definitions import IdlAttribute
+from idl_definitions import IdlOperation
+from idl_types import IdlType
+from idl_types import IdlNullableType
+from idl_types import IdlUnionType
+from idl_types import PRIMITIVE_TYPES
+from idl_types import STRING_TYPES
 
 
 # TODO(dglazkov): Convert to use actual objects, not stubs.
diff --git a/bindings/scripts/compute_global_objects.py b/bindings/scripts/compute_global_objects.py
index 460be4a..df0b6cb 100755
--- a/bindings/scripts/compute_global_objects.py
+++ b/bindings/scripts/compute_global_objects.py
@@ -18,12 +18,12 @@
 import os
 import sys
 
-from .utilities import get_file_contents
-from .utilities import get_interface_extended_attributes_from_idl
-from .utilities import get_first_interface_name_from_idl
-from .utilities import read_file_to_list
-from .utilities import read_pickle_files
-from .utilities import write_pickle_file
+from utilities import get_file_contents
+from utilities import get_interface_extended_attributes_from_idl
+from utilities import get_first_interface_name_from_idl
+from utilities import read_file_to_list
+from utilities import read_pickle_files
+from utilities import write_pickle_file
 
 GLOBAL_EXTENDED_ATTRIBUTES = frozenset([
     'Global',
diff --git a/bindings/scripts/compute_interfaces_info_individual.py b/bindings/scripts/compute_interfaces_info_individual.py
index 0850401..0cd6ec1 100755
--- a/bindings/scripts/compute_interfaces_info_individual.py
+++ b/bindings/scripts/compute_interfaces_info_individual.py
@@ -47,15 +47,15 @@
 import posixpath
 import sys
 
-from .idl_definitions import Visitor
-from .idl_reader import IdlReader
-from .utilities import idl_filename_to_component
-from .utilities import idl_filename_to_basename
-from .utilities import merge_dict_recursively
-from .utilities import read_idl_files_list_from_file
-from .utilities import shorten_union_name
-from .utilities import to_snake_case
-from .utilities import write_pickle_file
+from idl_definitions import Visitor
+from idl_reader import IdlReader
+from utilities import idl_filename_to_component
+from utilities import idl_filename_to_basename
+from utilities import merge_dict_recursively
+from utilities import read_idl_files_list_from_file
+from utilities import shorten_union_name
+from utilities import to_snake_case
+from utilities import write_pickle_file
 
 
 module_path = os.path.dirname(__file__)
@@ -140,10 +140,21 @@
 
 
 def get_unforgeable_attributes_from_definition(definition):
+    # Legacy Python 2 way to sort lists. Group by type, and then sort by value.
+    class MultitypeSortKey:
+        def __init__(self, value):
+            self.value = value
+
+        def __lt__(self, other):
+            try:
+                return self.value < other.value
+            except TypeError:
+                return str(type(self)) < str(type(other))
     if 'Unforgeable' in definition.extended_attributes:
-        return sorted(definition.attributes)
-    return sorted(attribute for attribute in definition.attributes
-                  if 'Unforgeable' in attribute.extended_attributes)
+        return sorted(definition.attributes, key=MultitypeSortKey)
+    return sorted([attribute for attribute in definition.attributes
+                  if 'Unforgeable' in attribute.extended_attributes],
+                  key=MultitypeSortKey)
 
 
 def collect_union_types_from_definitions(definitions):
diff --git a/bindings/scripts/compute_interfaces_info_overall.py b/bindings/scripts/compute_interfaces_info_overall.py
index 6690fed..ad1202d 100755
--- a/bindings/scripts/compute_interfaces_info_overall.py
+++ b/bindings/scripts/compute_interfaces_info_overall.py
@@ -87,11 +87,11 @@
 import sys
 
 from collections import defaultdict
-from .utilities import idl_filename_to_component
-from .utilities import merge_dict_recursively
-from .utilities import read_pickle_files
-from .utilities import shorten_union_name
-from .utilities import write_pickle_file
+from utilities import idl_filename_to_component
+from utilities import merge_dict_recursively
+from utilities import read_pickle_files
+from utilities import shorten_union_name
+from utilities import write_pickle_file
 
 INHERITED_EXTENDED_ATTRIBUTES = set([
     'ActiveScriptWrappable',
diff --git a/bindings/scripts/generate_conditional_features.py b/bindings/scripts/generate_conditional_features.py
index ea1a475..42ed635 100644
--- a/bindings/scripts/generate_conditional_features.py
+++ b/bindings/scripts/generate_conditional_features.py
@@ -14,12 +14,12 @@
 import sys
 from collections import defaultdict, namedtuple
 
-from .code_generator import (initialize_jinja_env, normalize_and_sort_includes,
+from code_generator import (initialize_jinja_env, normalize_and_sort_includes,
                             render_template)
-from .idl_reader import IdlReader
-from .utilities import (create_component_info_provider, write_file,
+from idl_reader import IdlReader
+from utilities import (create_component_info_provider, write_file,
                        idl_filename_to_component)
-from .v8_utilities import (binding_header_basename, v8_class_name,
+from v8_utilities import (binding_header_basename, v8_class_name,
                           v8_class_name_or_partial, uncapitalize)
 
 # Make sure extension is .py, not .pyc or .pyo, so doesn't depend on caching
diff --git a/bindings/scripts/generate_event_interfaces.py b/bindings/scripts/generate_event_interfaces.py
index 2e17db8..5cc29ae 100755
--- a/bindings/scripts/generate_event_interfaces.py
+++ b/bindings/scripts/generate_event_interfaces.py
@@ -45,7 +45,7 @@
 import posixpath
 import sys
 
-from .utilities import (get_file_contents, get_first_interface_name_from_idl,
+from utilities import (get_file_contents, get_first_interface_name_from_idl,
                        read_file_to_list, write_file,
                        get_interface_extended_attributes_from_idl)
 
diff --git a/bindings/scripts/generate_global_constructors.py b/bindings/scripts/generate_global_constructors.py
index fe374f5..fb7714b 100755
--- a/bindings/scripts/generate_global_constructors.py
+++ b/bindings/scripts/generate_global_constructors.py
@@ -26,16 +26,16 @@
 import sys
 
 from collections import defaultdict
-from .utilities import get_file_contents
-from .utilities import get_first_interface_name_from_idl
-from .utilities import get_interface_exposed_arguments
-from .utilities import get_interface_extended_attributes_from_idl
-from .utilities import is_non_legacy_callback_interface_from_idl
-from .utilities import read_file_to_list
-from .utilities import read_pickle_file
-from .utilities import should_generate_impl_file_from_idl
-from .utilities import write_file
-from .v8_utilities import EXPOSED_EXECUTION_CONTEXT_METHOD
+from utilities import get_file_contents
+from utilities import get_first_interface_name_from_idl
+from utilities import get_interface_exposed_arguments
+from utilities import get_interface_extended_attributes_from_idl
+from utilities import is_non_legacy_callback_interface_from_idl
+from utilities import read_file_to_list
+from utilities import read_pickle_file
+from utilities import should_generate_impl_file_from_idl
+from utilities import write_file
+from v8_utilities import EXPOSED_EXECUTION_CONTEXT_METHOD
 
 interface_name_to_global_names = {}
 global_name_to_constructors = defaultdict(list)
diff --git a/bindings/scripts/generate_init_partial_interfaces.py b/bindings/scripts/generate_init_partial_interfaces.py
index 8ebd162..053b10a 100755
--- a/bindings/scripts/generate_init_partial_interfaces.py
+++ b/bindings/scripts/generate_init_partial_interfaces.py
@@ -12,12 +12,12 @@
 import posixpath
 import sys
 
-from .utilities import get_file_contents
-from .utilities import get_first_interface_name_from_idl
-from .utilities import read_idl_files_list_from_file
-from .utilities import should_generate_impl_file_from_idl
-from .utilities import write_file
-from .v8_utilities import build_basename
+from utilities import get_file_contents
+from utilities import get_first_interface_name_from_idl
+from utilities import read_idl_files_list_from_file
+from utilities import should_generate_impl_file_from_idl
+from utilities import write_file
+from v8_utilities import build_basename
 
 
 _COPYRIGHT = """// Copyright 2014 The Chromium Authors. All rights reserved.
diff --git a/bindings/scripts/generate_v8_context_snapshot_external_references.py b/bindings/scripts/generate_v8_context_snapshot_external_references.py
index 57a40de..b84db55 100644
--- a/bindings/scripts/generate_v8_context_snapshot_external_references.py
+++ b/bindings/scripts/generate_v8_context_snapshot_external_references.py
@@ -8,14 +8,14 @@
 import os
 import posixpath
 
-from .code_generator import initialize_jinja_env
-from .idl_reader import IdlReader
-from .utilities import create_component_info_provider, write_file
-from . import utilities
-from . import v8_attributes
-from . import v8_interface
-from . import v8_types
-from . import v8_utilities
+from code_generator import initialize_jinja_env
+from idl_reader import IdlReader
+from utilities import create_component_info_provider, write_file
+import utilities
+import v8_attributes
+import v8_interface
+import v8_types
+import v8_utilities
 
 
 INCLUDES = frozenset([
diff --git a/bindings/scripts/idl_compiler.py b/bindings/scripts/idl_compiler.py
index ce275af..d80f899 100755
--- a/bindings/scripts/idl_compiler.py
+++ b/bindings/scripts/idl_compiler.py
@@ -37,14 +37,14 @@
 import os
 import sys
 
-from .code_generator_v8 import CodeGeneratorDictionaryImpl
-from .code_generator_v8 import CodeGeneratorV8
-from .code_generator_v8 import CodeGeneratorUnionType
-from .code_generator_v8 import CodeGeneratorCallbackFunction
-from .idl_reader import IdlReader
-from .utilities import create_component_info_provider
-from .utilities import read_idl_files_list_from_file
-from .utilities import write_file
+from code_generator_v8 import CodeGeneratorDictionaryImpl
+from code_generator_v8 import CodeGeneratorV8
+from code_generator_v8 import CodeGeneratorUnionType
+from code_generator_v8 import CodeGeneratorCallbackFunction
+from idl_reader import IdlReader
+from utilities import create_component_info_provider
+from utilities import read_idl_files_list_from_file
+from utilities import write_file
 
 
 def parse_options():
diff --git a/bindings/scripts/idl_definitions.py b/bindings/scripts/idl_definitions.py
index d4e8bdd..112f4eb 100644
--- a/bindings/scripts/idl_definitions.py
+++ b/bindings/scripts/idl_definitions.py
@@ -64,12 +64,12 @@
 
 import abc
 
-from .idl_types import IdlFrozenArrayType
-from .idl_types import IdlNullableType
-from .idl_types import IdlRecordType
-from .idl_types import IdlSequenceType
-from .idl_types import IdlType
-from .idl_types import IdlUnionType
+from idl_types import IdlFrozenArrayType
+from idl_types import IdlNullableType
+from idl_types import IdlRecordType
+from idl_types import IdlSequenceType
+from idl_types import IdlType
+from idl_types import IdlUnionType
 
 SPECIAL_KEYWORD_LIST = ['LEGACYCALLER', 'GETTER', 'SETTER', 'DELETER']
 
diff --git a/bindings/scripts/idl_definitions_test.py b/bindings/scripts/idl_definitions_test.py
index 0b66144..78dd732 100644
--- a/bindings/scripts/idl_definitions_test.py
+++ b/bindings/scripts/idl_definitions_test.py
@@ -8,7 +8,7 @@
 
 import unittest
 
-from .idl_definitions import IdlAttribute
+from idl_definitions import IdlAttribute
 
 
 class IdlAttributeTest(unittest.TestCase):
diff --git a/bindings/scripts/idl_reader.py b/bindings/scripts/idl_reader.py
index 3e0dafc..58604f2 100644
--- a/bindings/scripts/idl_reader.py
+++ b/bindings/scripts/idl_reader.py
@@ -34,13 +34,13 @@
 
 import os
 
-from . import blink_idl_parser
-from .blink_idl_parser import BlinkIDLParser
-from .idl_definitions import IdlDefinitions
-from .idl_validator import EXTENDED_ATTRIBUTES_RELATIVE_PATH, IDLInvalidExtendedAttributeError, IDLExtendedAttributeValidator
-from .interface_dependency_resolver import InterfaceDependencyResolver
-from .utilities import idl_filename_to_component
-from .utilities import to_snake_case
+import blink_idl_parser
+from blink_idl_parser import BlinkIDLParser
+from idl_definitions import IdlDefinitions
+from idl_validator import EXTENDED_ATTRIBUTES_RELATIVE_PATH, IDLInvalidExtendedAttributeError, IDLExtendedAttributeValidator
+from interface_dependency_resolver import InterfaceDependencyResolver
+from utilities import idl_filename_to_component
+from utilities import to_snake_case
 
 
 def validate_blink_idl_definitions(idl_filename, idl_file_basename,
diff --git a/bindings/scripts/idl_types_test.py b/bindings/scripts/idl_types_test.py
index 1abc109..e360d5a 100644
--- a/bindings/scripts/idl_types_test.py
+++ b/bindings/scripts/idl_types_test.py
@@ -8,11 +8,11 @@
 
 import unittest
 
-from .idl_types import IdlNullableType
-from .idl_types import IdlRecordType
-from .idl_types import IdlSequenceType
-from .idl_types import IdlType
-from .idl_types import IdlUnionType
+from idl_types import IdlNullableType
+from idl_types import IdlRecordType
+from idl_types import IdlSequenceType
+from idl_types import IdlType
+from idl_types import IdlUnionType
 
 
 class IdlTypeTest(unittest.TestCase):
diff --git a/bindings/scripts/interface_dependency_resolver.py b/bindings/scripts/interface_dependency_resolver.py
index a7e8cca..6e266d3 100644
--- a/bindings/scripts/interface_dependency_resolver.py
+++ b/bindings/scripts/interface_dependency_resolver.py
@@ -37,7 +37,7 @@
 """
 
 import os.path
-from .utilities import idl_filename_to_component, is_valid_component_dependency, merge_dict_recursively
+from utilities import idl_filename_to_component, is_valid_component_dependency, merge_dict_recursively
 
 # The following extended attributes can be applied to a dependency interface,
 # and are then applied to the individual members when merging.
diff --git a/bindings/scripts/overload_set_algorithm_test.py b/bindings/scripts/overload_set_algorithm_test.py
index dacf861..389a9ed 100644
--- a/bindings/scripts/overload_set_algorithm_test.py
+++ b/bindings/scripts/overload_set_algorithm_test.py
@@ -7,7 +7,7 @@
 """Unit tests for overload_set_algorithm.py."""
 
 import unittest
-from .overload_set_algorithm import effective_overload_set
+from overload_set_algorithm import effective_overload_set
 
 
 class EffectiveOverloadSetTest(unittest.TestCase):
diff --git a/bindings/scripts/v8_attributes.py b/bindings/scripts/v8_attributes.py
index abf8ae4..fad2784 100644
--- a/bindings/scripts/v8_attributes.py
+++ b/bindings/scripts/v8_attributes.py
@@ -35,12 +35,12 @@
 Design doc: http://www.chromium.org/developers/design-documents/idl-compiler
 """
 
-from . import idl_types
-from .idl_types import inherits_interface
-from .v8_globals import includes
-from . import v8_types
-from . import v8_utilities
-from .v8_utilities import (cpp_name_or_partial, capitalize, cpp_name, has_extended_attribute,
+import idl_types
+from idl_types import inherits_interface
+from v8_globals import includes
+import v8_types
+import v8_utilities
+from v8_utilities import (cpp_name_or_partial, capitalize, cpp_name, has_extended_attribute,
                           has_extended_attribute_value, scoped_name, strip_suffix,
                           uncapitalize, extended_attribute_value_as_list, is_unforgeable,
                           is_legacy_interface_type_checking)
diff --git a/bindings/scripts/v8_callback_function.py b/bindings/scripts/v8_callback_function.py
index b5a20b9..4f51dd2 100644
--- a/bindings/scripts/v8_callback_function.py
+++ b/bindings/scripts/v8_callback_function.py
@@ -7,8 +7,8 @@
 Design doc: http://www.chromium.org/developers/design-documents/idl-compiler
 """
 
-from .utilities import to_snake_case
-from .v8_globals import includes
+from utilities import to_snake_case
+from v8_globals import includes
 
 CALLBACK_FUNCTION_H_INCLUDES = frozenset([
     'bindings/core/v8/NativeValueTraits.h',
diff --git a/bindings/scripts/v8_callback_interface.py b/bindings/scripts/v8_callback_interface.py
index b40e1fa..c034dd3 100644
--- a/bindings/scripts/v8_callback_interface.py
+++ b/bindings/scripts/v8_callback_interface.py
@@ -33,11 +33,11 @@
 Design doc: http://www.chromium.org/developers/design-documents/idl-compiler
 """
 
-from .idl_types import IdlTypeBase
-from .v8_globals import includes
-from .v8_interface import constant_context
-from . import v8_types
-from . import v8_utilities
+from idl_types import IdlTypeBase
+from v8_globals import includes
+from v8_interface import constant_context
+import v8_types
+import v8_utilities
 
 CALLBACK_INTERFACE_H_INCLUDES = frozenset([
     'platform/bindings/DOMWrapperWorld.h',
diff --git a/bindings/scripts/v8_dictionary.py b/bindings/scripts/v8_dictionary.py
index 882a4f4..0440cc2 100644
--- a/bindings/scripts/v8_dictionary.py
+++ b/bindings/scripts/v8_dictionary.py
@@ -7,12 +7,12 @@
 """
 
 import operator
-from .idl_types import IdlType
-from .utilities import to_snake_case
-from .v8_globals import includes
-from . import v8_types
-from . import v8_utilities
-from .v8_utilities import has_extended_attribute_value
+from idl_types import IdlType
+from utilities import to_snake_case
+from v8_globals import includes
+import v8_types
+import v8_utilities
+from v8_utilities import has_extended_attribute_value
 
 
 DICTIONARY_H_INCLUDES = frozenset([
diff --git a/bindings/scripts/v8_interface.py b/bindings/scripts/v8_interface.py
index b3956bd..c66a80c 100644
--- a/bindings/scripts/v8_interface.py
+++ b/bindings/scripts/v8_interface.py
@@ -35,17 +35,17 @@
 """
 from operator import or_
 
-from .idl_definitions import IdlAttribute, IdlOperation, IdlArgument
-from .idl_types import IdlType, inherits_interface
-from .overload_set_algorithm import effective_overload_set_by_length
-from .overload_set_algorithm import method_overloads_by_name
+from idl_definitions import IdlAttribute, IdlOperation, IdlArgument
+from idl_types import IdlType, inherits_interface
+from overload_set_algorithm import effective_overload_set_by_length
+from overload_set_algorithm import method_overloads_by_name
 
-from . import v8_attributes
-from .v8_globals import includes
-from . import v8_methods
-from . import v8_types
-from . import v8_utilities
-from .v8_utilities import (context_enabled_feature_name, cpp_name_or_partial, cpp_name,
+import v8_attributes
+from v8_globals import includes
+import v8_methods
+import v8_types
+import v8_utilities
+from v8_utilities import (context_enabled_feature_name, cpp_name_or_partial, cpp_name,
                           has_extended_attribute_value, runtime_enabled_feature_name,
                           is_legacy_interface_type_checking)
 
diff --git a/bindings/scripts/v8_methods.py b/bindings/scripts/v8_methods.py
index 44f37a0..13201ad 100644
--- a/bindings/scripts/v8_methods.py
+++ b/bindings/scripts/v8_methods.py
@@ -34,12 +34,12 @@
 Design doc: http://www.chromium.org/developers/design-documents/idl-compiler
 """
 
-from .idl_definitions import IdlArgument, IdlOperation
-from .idl_types import IdlTypeBase, IdlUnionType, inherits_interface
-from .v8_globals import includes
-from . import v8_types
-from . import v8_utilities
-from .v8_utilities import (has_extended_attribute_value, is_unforgeable,
+from idl_definitions import IdlArgument, IdlOperation
+from idl_types import IdlTypeBase, IdlUnionType, inherits_interface
+from v8_globals import includes
+import v8_types
+import v8_utilities
+from v8_utilities import (has_extended_attribute_value, is_unforgeable,
                           is_legacy_interface_type_checking)
 
 
diff --git a/bindings/scripts/v8_types.py b/bindings/scripts/v8_types.py
index 2c0b868..b59f393 100644
--- a/bindings/scripts/v8_types.py
+++ b/bindings/scripts/v8_types.py
@@ -41,16 +41,16 @@
 
 import posixpath
 
-from .idl_types import IdlArrayOrSequenceType
-from .idl_types import IdlNullableType
-from .idl_types import IdlRecordType
-from .idl_types import IdlType
-from .idl_types import IdlTypeBase
-from .idl_types import IdlUnionType
-from .utilities import to_snake_case
-from . import v8_attributes  # for IdlType.constructor_type_name
-from .v8_globals import includes
-from .v8_utilities import extended_attribute_value_contains
+from idl_types import IdlArrayOrSequenceType
+from idl_types import IdlNullableType
+from idl_types import IdlRecordType
+from idl_types import IdlType
+from idl_types import IdlTypeBase
+from idl_types import IdlUnionType
+from utilities import to_snake_case
+import v8_attributes  # for IdlType.constructor_type_name
+from v8_globals import includes
+from v8_utilities import extended_attribute_value_contains
 
 
 ################################################################################
diff --git a/bindings/scripts/v8_union.py b/bindings/scripts/v8_union.py
index 8d1e4ad..7778c88 100644
--- a/bindings/scripts/v8_union.py
+++ b/bindings/scripts/v8_union.py
@@ -2,9 +2,9 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-from .utilities import to_snake_case
-from . import v8_types
-from . import v8_utilities
+from utilities import to_snake_case
+import v8_types
+import v8_utilities
 
 
 UNION_CPP_INCLUDES = frozenset([
diff --git a/bindings/scripts/v8_utilities.py b/bindings/scripts/v8_utilities.py
index 9cd6ad0..08c4fe8 100644
--- a/bindings/scripts/v8_utilities.py
+++ b/bindings/scripts/v8_utilities.py
@@ -35,11 +35,11 @@
 import re
 import sys
 
-from .idl_types import IdlTypeBase
-from . import idl_types
-from .idl_definitions import Exposure, IdlInterface, IdlAttribute
-from .utilities import to_snake_case
-from .v8_globals import includes
+from idl_types import IdlTypeBase
+import idl_types
+from idl_definitions import Exposure, IdlInterface, IdlAttribute
+from utilities import to_snake_case
+from v8_globals import includes
 
 ACRONYMS = [
     'CSSOM',  # must come *before* CSS to match full acronym