From 87c93eab2ff972a33bacecc9175e4a960c1408ec Mon Sep 17 00:00:00 2001 Message-Id: <87c93eab2ff972a33bacecc9175e4a960c1408ec.1715149947.git.mdw@distorted.org.uk> From: Mark Wooding Date: Sun, 7 Oct 2007 15:07:11 +0200 Subject: [PATCH] Make a common superclass for all StGit exceptions MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Organization: Straylight/Edgeware From: Karl Hasselström This makes it easier to catch them all. (Indeed, the very long list of exceptions to catch in main.py was missing some of the exceptions.) Signed-off-by: Karl Hasselström --- stgit/commands/common.py | 5 +++-- stgit/config.py | 3 ++- stgit/exception.py | 3 +++ stgit/git.py | 3 ++- stgit/gitmergeonefile.py | 3 ++- stgit/main.py | 11 +++-------- stgit/run.py | 5 +++-- stgit/stack.py | 3 ++- stgit/utils.py | 3 ++- 9 files changed, 22 insertions(+), 17 deletions(-) create mode 100644 stgit/exception.py diff --git a/stgit/commands/common.py b/stgit/commands/common.py index 0fc157a..27a616f 100644 --- a/stgit/commands/common.py +++ b/stgit/commands/common.py @@ -21,6 +21,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import sys, os, os.path, re from optparse import OptionParser, make_option +from stgit.exception import * from stgit.utils import * from stgit.out import * from stgit import stack, git, basedir @@ -30,11 +31,11 @@ crt_series = None # Command exception class -class CmdException(Exception): +class CmdException(StgException): pass # Utility functions -class RevParseException(Exception): +class RevParseException(StgException): """Revision spec parse error.""" pass diff --git a/stgit/config.py b/stgit/config.py index 51818bd..3eabc8c 100644 --- a/stgit/config.py +++ b/stgit/config.py @@ -20,9 +20,10 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import os, re from stgit import basedir +from stgit.exception import * from stgit.run import * -class GitConfigException(Exception): +class GitConfigException(StgException): pass class GitConfig: diff --git a/stgit/exception.py b/stgit/exception.py new file mode 100644 index 0000000..9933e64 --- /dev/null +++ b/stgit/exception.py @@ -0,0 +1,3 @@ +class StgException(Exception): + """Base class for all StGit exceptions.""" + pass diff --git a/stgit/git.py b/stgit/git.py index a0493bc..0026fd8 100644 --- a/stgit/git.py +++ b/stgit/git.py @@ -21,6 +21,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import sys, os, re, gitmergeonefile from shutil import copyfile +from stgit.exception import * from stgit import basedir from stgit.utils import * from stgit.out import * @@ -28,7 +29,7 @@ from stgit.run import * from stgit.config import config # git exception class -class GitException(Exception): +class GitException(StgException): pass # When a subprocess has a problem, we want the exception to be a diff --git a/stgit/gitmergeonefile.py b/stgit/gitmergeonefile.py index 2aa5ef8..058b6ac 100644 --- a/stgit/gitmergeonefile.py +++ b/stgit/gitmergeonefile.py @@ -19,13 +19,14 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """ import sys, os +from stgit.exception import * from stgit import basedir from stgit.config import config, file_extensions, ConfigOption from stgit.utils import append_string from stgit.out import * from stgit.run import * -class GitMergeException(Exception): +class GitMergeException(StgException): pass diff --git a/stgit/main.py b/stgit/main.py index 2c8716b..f54330d 100644 --- a/stgit/main.py +++ b/stgit/main.py @@ -255,13 +255,10 @@ def main(): # These modules are only used from this point onwards and do not # need to be imported earlier + from stgit.exception import StgException from stgit.config import config_setup from ConfigParser import ParsingError, NoSectionError - from stgit.stack import Series, StackException - from stgit.git import GitException - from stgit.commands.common import CmdException - from stgit.gitmergeonefile import GitMergeException - from stgit.utils import EditorException + from stgit.stack import Series try: debug_level = int(os.environ['STGIT_DEBUG_LEVEL']) @@ -284,9 +281,7 @@ def main(): stgit.commands.common.crt_series = command.crt_series command.func(parser, options, args) - except (IOError, ParsingError, NoSectionError, CmdException, - StackException, GitException, GitMergeException, - EditorException), err: + except (StgException, IOError, ParsingError, NoSectionError), err: print >> sys.stderr, '%s %s: %s' % (prog, cmd, err) if debug_level > 0: raise diff --git a/stgit/run.py b/stgit/run.py index 7986f3b..989bb27 100644 --- a/stgit/run.py +++ b/stgit/run.py @@ -19,9 +19,10 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import datetime, os, subprocess -from stgit.out import * +from stgit.exception import * +from stgit.out import * -class RunException(Exception): +class RunException(StgException): """Thrown when something bad happened when we tried to run the subprocess.""" pass diff --git a/stgit/stack.py b/stgit/stack.py index 4d1a066..bdb4e38 100644 --- a/stgit/stack.py +++ b/stgit/stack.py @@ -21,6 +21,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import sys, os, re from email.Utils import formatdate +from stgit.exception import * from stgit.utils import * from stgit.out import * from stgit.run import * @@ -30,7 +31,7 @@ from shutil import copyfile # stack exception class -class StackException(Exception): +class StackException(StgException): pass class FilterUntil: diff --git a/stgit/utils.py b/stgit/utils.py index 857c0f0..3a480c0 100644 --- a/stgit/utils.py +++ b/stgit/utils.py @@ -2,6 +2,7 @@ """ import errno, optparse, os, os.path, re, sys +from stgit.exception import * from stgit.config import config from stgit.out import * @@ -166,7 +167,7 @@ def rename(basedir, file1, file2): # file1's parent dir may not be empty after move pass -class EditorException(Exception): +class EditorException(StgException): pass def call_editor(filename): -- [mdw]