195640e3a20adea634b4df4ccf8c93f411184c438joi@chromium.org#!/usr/bin/env python 295640e3a20adea634b4df4ccf8c93f411184c438joi@chromium.org# Copyright (c) 2012 The Chromium Authors. All rights reserved. 301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org# Use of this source code is governed by a BSD-style license that can be 401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org# found in the LICENSE file. 501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org'''Exception types for GRIT. 701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org''' 801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass Base(Exception): 1001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''A base exception that uses the class's docstring in addition to any 1101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org user-provided message as the body of the Base. 1201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ''' 1301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def __init__(self, msg=''): 1401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org if len(msg): 1501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org if self.__doc__: 1601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org msg = self.__doc__ + ': ' + msg 1701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org else: 1801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org msg = self.__doc__ 19b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org super(Base, self).__init__(msg) 2001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 2101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 2201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass Parsing(Base): 2301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''An error occurred parsing a GRD or XTB file.''' 24b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 2501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 2601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 2701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass UnknownElement(Parsing): 2801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''An unknown node type was encountered.''' 29b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 3001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 3101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 3201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass MissingElement(Parsing): 3301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''An expected element was missing.''' 34b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 3501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 3601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 3701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass UnexpectedChild(Parsing): 3801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''An unexpected child element was encountered (on a leaf node).''' 39b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 4001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 4101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 4201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass UnexpectedAttribute(Parsing): 4301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''The attribute was not expected''' 44b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 4501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 4601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 4701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass UnexpectedContent(Parsing): 4801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''This element should not have content''' 49b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 5001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 5101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 5201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass MissingMandatoryAttribute(Parsing): 5301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''This element is missing a mandatory attribute''' 54b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 5501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 5601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 5701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass MutuallyExclusiveMandatoryAttribute(Parsing): 5801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''This element has 2 mutually exclusive mandatory attributes''' 59b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 6001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 6101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 6201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass DuplicateKey(Parsing): 6301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''A duplicate key attribute was found.''' 64b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 6501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 6601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 6701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass TooManyExamples(Parsing): 6801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''Only one <ex> element is allowed for each <ph> element.''' 69b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 7001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 7101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 7201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass GotPathExpectedFilenameOnly(Parsing): 7383717e82a9b5e0c629ff4f1078d50503ffd2ae75benrg@chromium.org '''The 'filename' attribute of <output> and the 'file' attribute of <part> 7483717e82a9b5e0c629ff4f1078d50503ffd2ae75benrg@chromium.org must be bare filenames, not paths. 7501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ''' 76b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 7701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 7801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 79ec8016c73b3b945b6284746230913d88653f35e7benrg@chromium.orgclass FileNotFound(Parsing): 80ec8016c73b3b945b6284746230913d88653f35e7benrg@chromium.org '''The resource file was not found. 81ec8016c73b3b945b6284746230913d88653f35e7benrg@chromium.org ''' 82b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 83ec8016c73b3b945b6284746230913d88653f35e7benrg@chromium.org 84ec8016c73b3b945b6284746230913d88653f35e7benrg@chromium.org 8501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass InvalidMessage(Base): 8601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''The specified message failed validation.''' 87b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 8801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 8901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 9001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass InvalidTranslation(Base): 9101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''Attempt to add an invalid translation to a clique.''' 92b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 9301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 9401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 9501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass NoSuchTranslation(Base): 9601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''Requested translation not available''' 97b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 9801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 9901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 10001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass NotReady(Base): 10101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''Attempt to use an object before it is ready, or attempt to translate 10201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org an empty document.''' 103b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 10401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 10501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 10601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass TooManyPlaceholders(Base): 10701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''Too many placeholders for elements of the same type.''' 108b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 10901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 11001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 11101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass MismatchingPlaceholders(Base): 11201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''Placeholders do not match.''' 113b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 11401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 11501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 11601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass InvalidPlaceholderName(Base): 11701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''Placeholder name can only contain A-Z, a-z, 0-9 and underscore.''' 118b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 11901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 12001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 12101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass BlockTagInTranslateableChunk(Base): 12201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''A block tag was encountered where it wasn't expected.''' 123b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 12401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 12501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 12601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass SectionNotFound(Base): 12701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''The section you requested was not found in the RC file. Make 12801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgsure the section ID is correct (matches the section's ID in the RC file). 12901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgAlso note that you may need to specify the RC file's encoding (using the 13001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgencoding="" attribute) if it is not in the default Windows-1252 encoding. 13101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ''' 132b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 13301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 13401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 13501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass IdRangeOverlap(Base): 13601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''ID range overlap.''' 137b9161407f737461b5db16a29782f8a31d19e602dbenrg@chromium.org pass 13801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 139