From: "Karl Hasselström" <kha@treskal.com>
To: Catalin Marinas <catalin.marinas@gmail.com>
Cc: git@vger.kernel.org
Subject: [StGit PATCH 5/8] Make a common superclass for all StGit exceptions
Date: Mon, 08 Oct 2007 01:17:41 +0200 [thread overview]
Message-ID: <20071007231741.12626.97806.stgit@yoghurt> (raw)
In-Reply-To: <20071007231446.12626.14259.stgit@yoghurt>
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 <kha@treskal.com>
---
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):
next prev parent reply other threads:[~2007-10-07 23:18 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-07 23:17 [StGit PATCH 0/8] Miscellaneous fixes and improvements Karl Hasselström
2007-10-07 23:17 ` [StGit PATCH 1/8] Add --ack/--sign options to "stg new" Karl Hasselström
2007-10-07 23:17 ` [StGit PATCH 2/8] New test: "stg pop --keep" Karl Hasselström
2007-10-07 23:17 ` [StGit PATCH 3/8] Fix up the help text for "stg edit" Karl Hasselström
2007-10-07 23:17 ` [StGit PATCH 4/8] Don't split long and short description in " Karl Hasselström
2007-10-07 23:40 ` David Brown
2007-10-08 6:41 ` Karl Hasselström
2007-10-07 23:17 ` Karl Hasselström [this message]
2007-10-07 23:17 ` [StGit PATCH 6/8] Simplify debug level error checking Karl Hasselström
2007-10-07 23:17 ` [StGit PATCH 7/8] Discard stderr output from git-rev-parse Karl Hasselström
2007-10-07 23:18 ` [StGit PATCH 8/8] Remove the --force flag to "stg rebase" and "stg pull" Karl Hasselström
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20071007231741.12626.97806.stgit@yoghurt \
--to=kha@treskal.com \
--cc=catalin.marinas@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).