| Index: pylib/gyp/xcodeproj_file.py
|
| diff --git a/pylib/gyp/xcodeproj_file.py b/pylib/gyp/xcodeproj_file.py
|
| index 759fdd91996611d816d6d8285791498c9b7e6d39..a9deb1549e086c5166bac32b986c5d0a500ad806 100644
|
| --- a/pylib/gyp/xcodeproj_file.py
|
| +++ b/pylib/gyp/xcodeproj_file.py
|
| @@ -173,7 +173,7 @@ _escaped = re.compile('[\\\\"]|[\x00-\x1f]')
|
|
|
|
|
| # Used by SourceTreeAndPathFromPath
|
| -_path_leading_variable = re.compile('^\$\((.*?)\)(/(.*))?$')
|
| +_path_leading_variable = re.compile(r'^\$\((.*?)\)(/(.*))?$')
|
|
|
| def SourceTreeAndPathFromPath(input_path):
|
| """Given input_path, returns a tuple with sourceTree and path values.
|
| @@ -196,7 +196,7 @@ def SourceTreeAndPathFromPath(input_path):
|
| return (source_tree, output_path)
|
|
|
| def ConvertVariablesToShellSyntax(input_string):
|
| - return re.sub('\$\((.*?)\)', '${\\1}', input_string)
|
| + return re.sub(r'\$\((.*?)\)', '${\\1}', input_string)
|
|
|
| class XCObject(object):
|
| """The abstract base of all class types used in Xcode project files.
|
| @@ -341,13 +341,13 @@ class XCObject(object):
|
| elif isinstance(value, dict):
|
| # dicts are never strong.
|
| if is_strong:
|
| - raise TypeError, 'Strong dict for key ' + key + ' in ' + \
|
| - self.__class__.__name__
|
| + raise TypeError('Strong dict for key ' + key + ' in ' + \
|
| + self.__class__.__name__)
|
| else:
|
| that._properties[key] = value.copy()
|
| else:
|
| - raise TypeError, 'Unexpected type ' + value.__class__.__name__ + \
|
| - ' for key ' + key + ' in ' + self.__class__.__name__
|
| + raise TypeError('Unexpected type ' + value.__class__.__name__ + \
|
| + ' for key ' + key + ' in ' + self.__class__.__name__)
|
|
|
| return that
|
|
|
| @@ -366,8 +366,7 @@ class XCObject(object):
|
| ('name' in self._schema and self._schema['name'][3]):
|
| return self._properties['name']
|
|
|
| - raise NotImplementedError, \
|
| - self.__class__.__name__ + ' must implement Name'
|
| + raise NotImplementedError(self.__class__.__name__ + ' must implement Name')
|
|
|
| def Comment(self):
|
| """Return a comment string for the object.
|
| @@ -466,10 +465,10 @@ class XCObject(object):
|
| for descendant in descendants:
|
| if descendant.id in ids:
|
| other = ids[descendant.id]
|
| - raise KeyError, \
|
| + raise KeyError(
|
| 'Duplicate ID %s, objects "%s" and "%s" in "%s"' % \
|
| (descendant.id, str(descendant._properties),
|
| - str(other._properties), self._properties['rootObject'].Name())
|
| + str(other._properties), self._properties['rootObject'].Name()))
|
| ids[descendant.id] = descendant
|
|
|
| def Children(self):
|
| @@ -630,7 +629,7 @@ class XCObject(object):
|
| sep
|
| printable += end_tabs + '}'
|
| else:
|
| - raise TypeError, "Can't make " + value.__class__.__name__ + ' printable'
|
| + raise TypeError("Can't make " + value.__class__.__name__ + ' printable')
|
|
|
| if comment != None:
|
| printable += ' ' + self._EncodeComment(comment)
|
| @@ -756,31 +755,31 @@ class XCObject(object):
|
| for property, value in properties.iteritems():
|
| # Make sure the property is in the schema.
|
| if not property in self._schema:
|
| - raise KeyError, property + ' not in ' + self.__class__.__name__
|
| + raise KeyError(property + ' not in ' + self.__class__.__name__)
|
|
|
| # Make sure the property conforms to the schema.
|
| (is_list, property_type, is_strong) = self._schema[property][0:3]
|
| if is_list:
|
| if value.__class__ != list:
|
| - raise TypeError, \
|
| + raise TypeError(
|
| property + ' of ' + self.__class__.__name__ + \
|
| - ' must be list, not ' + value.__class__.__name__
|
| + ' must be list, not ' + value.__class__.__name__)
|
| for item in value:
|
| if not isinstance(item, property_type) and \
|
| not (item.__class__ == unicode and property_type == str):
|
| # Accept unicode where str is specified. str is treated as
|
| # UTF-8-encoded.
|
| - raise TypeError, \
|
| + raise TypeError(
|
| 'item of ' + property + ' of ' + self.__class__.__name__ + \
|
| ' must be ' + property_type.__name__ + ', not ' + \
|
| - item.__class__.__name__
|
| + item.__class__.__name__)
|
| elif not isinstance(value, property_type) and \
|
| not (value.__class__ == unicode and property_type == str):
|
| # Accept unicode where str is specified. str is treated as
|
| # UTF-8-encoded.
|
| - raise TypeError, \
|
| + raise TypeError(
|
| property + ' of ' + self.__class__.__name__ + ' must be ' + \
|
| - property_type.__name__ + ', not ' + value.__class__.__name__
|
| + property_type.__name__ + ', not ' + value.__class__.__name__)
|
|
|
| # Checks passed, perform the assignment.
|
| if do_copy:
|
| @@ -804,9 +803,9 @@ class XCObject(object):
|
| elif isinstance(value, dict):
|
| self._properties[property] = value.copy()
|
| else:
|
| - raise TypeError, "Don't know how to copy a " + \
|
| - value.__class__.__name__ + ' object for ' + \
|
| - property + ' in ' + self.__class__.__name__
|
| + raise TypeError("Don't know how to copy a " + \
|
| + value.__class__.__name__ + ' object for ' + \
|
| + property + ' in ' + self.__class__.__name__)
|
| else:
|
| self._properties[property] = value
|
|
|
| @@ -837,15 +836,15 @@ class XCObject(object):
|
|
|
| # Schema validation.
|
| if not key in self._schema:
|
| - raise KeyError, key + ' not in ' + self.__class__.__name__
|
| + raise KeyError(key + ' not in ' + self.__class__.__name__)
|
|
|
| (is_list, property_type, is_strong) = self._schema[key][0:3]
|
| if not is_list:
|
| - raise TypeError, key + ' of ' + self.__class__.__name__ + ' must be list'
|
| + raise TypeError(key + ' of ' + self.__class__.__name__ + ' must be list')
|
| if not isinstance(value, property_type):
|
| - raise TypeError, 'item of ' + key + ' of ' + self.__class__.__name__ + \
|
| - ' must be ' + property_type.__name__ + ', not ' + \
|
| - value.__class__.__name__
|
| + raise TypeError('item of ' + key + ' of ' + self.__class__.__name__ + \
|
| + ' must be ' + property_type.__name__ + ', not ' + \
|
| + value.__class__.__name__)
|
|
|
| # If the property doesn't exist yet, create a new empty list to receive the
|
| # item.
|
| @@ -869,7 +868,7 @@ class XCObject(object):
|
| for property, attributes in self._schema.iteritems():
|
| (is_list, property_type, is_strong, is_required) = attributes[0:4]
|
| if is_required and not property in self._properties:
|
| - raise KeyError, self.__class__.__name__ + ' requires ' + property
|
| + raise KeyError(self.__class__.__name__ + ' requires ' + property)
|
|
|
| def _SetDefaultsFromSchema(self):
|
| """Assign object default values according to the schema. This will not
|
| @@ -1143,16 +1142,16 @@ class PBXGroup(XCHierarchicalElement):
|
| child_path = child.PathFromSourceTreeAndPath()
|
| if child_path:
|
| if child_path in self._children_by_path:
|
| - raise ValueError, 'Found multiple children with path ' + child_path
|
| + raise ValueError('Found multiple children with path ' + child_path)
|
| self._children_by_path[child_path] = child
|
|
|
| if isinstance(child, PBXVariantGroup):
|
| child_name = child._properties.get('name', None)
|
| key = (child_name, child_path)
|
| if key in self._variant_children_by_name_and_path:
|
| - raise ValueError, 'Found multiple PBXVariantGroup children with ' + \
|
| - 'name ' + str(child_name) + ' and path ' + \
|
| - str(child_path)
|
| + raise ValueError('Found multiple PBXVariantGroup children with ' + \
|
| + 'name ' + str(child_name) + ' and path ' + \
|
| + str(child_path))
|
| self._variant_children_by_name_and_path[key] = child
|
|
|
| def AppendChild(self, child):
|
| @@ -1608,7 +1607,7 @@ class XCConfigurationList(XCObject):
|
| if configuration._properties['name'] == name:
|
| return configuration
|
|
|
| - raise KeyError, name
|
| + raise KeyError(name)
|
|
|
| def DefaultConfiguration(self):
|
| """Convenience accessor to obtain the default XCBuildConfiguration."""
|
| @@ -1665,7 +1664,7 @@ class XCConfigurationList(XCObject):
|
| value = configuration_value
|
| else:
|
| if value != configuration_value:
|
| - raise ValueError, 'Variant values for ' + key
|
| + raise ValueError('Variant values for ' + key)
|
|
|
| return value
|
|
|
| @@ -1772,8 +1771,8 @@ class XCBuildPhase(XCObject):
|
| # added, either as a child or deeper descendant. The second item should
|
| # be a boolean indicating whether files should be added into hierarchical
|
| # groups or one single flat group.
|
| - raise NotImplementedError, \
|
| - self.__class__.__name__ + ' must implement FileGroup'
|
| + raise NotImplementedError(
|
| + self.__class__.__name__ + ' must implement FileGroup')
|
|
|
| def _AddPathToDict(self, pbxbuildfile, path):
|
| """Adds path to the dict tracking paths belonging to this build phase.
|
| @@ -1782,7 +1781,7 @@ class XCBuildPhase(XCObject):
|
| """
|
|
|
| if path in self._files_by_path:
|
| - raise ValueError, 'Found multiple build files with path ' + path
|
| + raise ValueError('Found multiple build files with path ' + path)
|
| self._files_by_path[path] = pbxbuildfile
|
|
|
| def _AddBuildFileToDicts(self, pbxbuildfile, path=None):
|
| @@ -1837,8 +1836,8 @@ class XCBuildPhase(XCObject):
|
| # problem.
|
| if xcfilelikeelement in self._files_by_xcfilelikeelement and \
|
| self._files_by_xcfilelikeelement[xcfilelikeelement] != pbxbuildfile:
|
| - raise ValueError, 'Found multiple build files for ' + \
|
| - xcfilelikeelement.Name()
|
| + raise ValueError('Found multiple build files for ' + \
|
| + xcfilelikeelement.Name())
|
| self._files_by_xcfilelikeelement[xcfilelikeelement] = pbxbuildfile
|
|
|
| def AppendBuildFile(self, pbxbuildfile, path=None):
|
| @@ -2002,8 +2001,8 @@ class PBXCopyFilesBuildPhase(XCBuildPhase):
|
| subfolder = 0
|
| relative_path = path[1:]
|
| else:
|
| - raise ValueError, 'Can\'t use path %s in a %s' % \
|
| - (path, self.__class__.__name__)
|
| + raise ValueError('Can\'t use path %s in a %s' % \
|
| + (path, self.__class__.__name__))
|
|
|
| self._properties['dstPath'] = relative_path
|
| self._properties['dstSubfolderSpec'] = subfolder
|
| @@ -2807,7 +2806,7 @@ class PBXProject(XCContainerPortal):
|
| product_group = ref_dict['ProductGroup']
|
| product_group._properties['children'] = sorted(
|
| product_group._properties['children'],
|
| - cmp=lambda x, y: CompareProducts(x, y, remote_products))
|
| + cmp=lambda x, y, rp=remote_products: CompareProducts(x, y, rp))
|
|
|
|
|
| class XCProjectFile(XCObject):
|
|
|