Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork966
Expand file tree
/
Copy pathexc.py
More file actions
128 lines (90 loc) · 4.66 KB
/
exc.py
File metadata and controls
128 lines (90 loc) · 4.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# exc.py
# Copyright (C) 2008, 2009 Michael Trier (mtrier@gmail.com) and contributors
#
# This module is part of GitPython and is released under
# the BSD License: http://www.opensource.org/licenses/bsd-license.php
""" Module containing all exceptions thrown throughout the git package, """
fromgitdb.excimport*# NOQA @UnusedWildImport
fromgit.compatimportUnicodeMixin,safe_decode,string_types
classInvalidGitRepositoryError(Exception):
""" Thrown if the given repository appears to have an invalid format. """
classWorkTreeRepositoryUnsupported(InvalidGitRepositoryError):
""" Thrown to indicate we can't handle work tree repositories """
classNoSuchPathError(OSError):
""" Thrown if a path could not be access by the system. """
classCommandError(UnicodeMixin,Exception):
"""Base class for exceptions thrown at every stage of `Popen()` execution.
:param command:
A non-empty list of argv comprising the command-line.
"""
#: A unicode print-format with 2 `%s for `<cmdline>` and the rest,
#: e.g.
#: u"'%s' failed%s"
_msg=u"Cmd('%s') failed%s"
def__init__(self,command,status=None,stderr=None,stdout=None):
ifnotisinstance(command, (tuple,list)):
command=command.split()
self.command=command
self.status=status
ifstatus:
ifisinstance(status,Exception):
status=u"%s('%s')"% (type(status).__name__,safe_decode(str(status)))
else:
try:
status=u'exit code(%s)'%int(status)
except:
s=safe_decode(str(status))
status=u"'%s'"%sifisinstance(status,string_types)elses
self._cmd=safe_decode(command[0])
self._cmdline=u' '.join(safe_decode(i)foriincommand)
self._cause=statusandu" due to: %s"%statusor"!"
self.stdout=stdoutandu"\n stdout: '%s'"%safe_decode(stdout)or''
self.stderr=stderrandu"\n stderr: '%s'"%safe_decode(stderr)or''
def__unicode__(self):
return (self._msg+"\n cmdline: %s%s%s")% (
self._cmd,self._cause,self._cmdline,self.stdout,self.stderr)
classGitCommandNotFound(CommandError):
"""Thrown if we cannot find the `git` executable in the PATH or at the path given by
the GIT_PYTHON_GIT_EXECUTABLE environment variable"""
def__init__(self,command,cause):
super(GitCommandNotFound,self).__init__(command,cause)
self._msg=u"Cmd('%s') not found%s"
classGitCommandError(CommandError):
""" Thrown if execution of the git command fails with non-zero status code. """
def__init__(self,command,status,stderr=None,stdout=None):
super(GitCommandError,self).__init__(command,status,stderr,stdout)
classCheckoutError(Exception):
"""Thrown if a file could not be checked out from the index as it contained
changes.
The .failed_files attribute contains a list of relative paths that failed
to be checked out as they contained changes that did not exist in the index.
The .failed_reasons attribute contains a string informing about the actual
cause of the issue.
The .valid_files attribute contains a list of relative paths to files that
were checked out successfully and hence match the version stored in the
index"""
def__init__(self,message,failed_files,valid_files,failed_reasons):
Exception.__init__(self,message)
self.failed_files=failed_files
self.failed_reasons=failed_reasons
self.valid_files=valid_files
def__str__(self):
returnException.__str__(self)+":%s"%self.failed_files
classCacheError(Exception):
"""Base for all errors related to the git index, which is called cache internally"""
classUnmergedEntriesError(CacheError):
"""Thrown if an operation cannot proceed as there are still unmerged
entries in the cache"""
classHookExecutionError(CommandError):
"""Thrown if a hook exits with a non-zero exit code. It provides access to the exit code and the string returned
via standard output"""
def__init__(self,command,status,stderr=None,stdout=None):
super(HookExecutionError,self).__init__(command,status,stderr,stdout)
self._msg=u"Hook('%s') failed%s"
classRepositoryDirtyError(Exception):
"""Thrown whenever an operation on a repository fails as it has uncommited changes that would be overwritten"""
def__init__(self,repo,message):
self.repo=repo
self.message=message
def__str__(self):
return"Operation cannot be performed on %r: %s"% (self.repo,self.message)